But what does Sprout offer?
Sprout aims to provide as much as possible, allowing you to implement multitenancy within your Laravel application, in the way that you want.
-
Tenant Identification
Sprout comes out of the box with support for subdomain, path, session/cookie, HTTP header, and authentication based identification. You can easily extend this functionality by writing your own identity resolver.
-
Dependency Injection support!
Sprout identifies and resolves tenants earlier in the applications lifecycle than most other solutions, while still happening late enough to make the most of Laravel's routing. This allows tenants to be injected into controllers.
-
Eloquent and beyond!
Using Eloquent? That's great, Sprout has a lot of features for simplifying working with tenants that are models. Want to use the raw database functionality sometimes? Without the hassle of Eloquent? That's supported to.
-
Every which shape of data!
Shared database, shared schema? Shared database, separate schema? Separate databases? Some combination of these? Whatever your data storage looks like, Sprout has you covered.
-
Configurable and extensible!
Sprout has been built with flexibility in mind, allowing you to configure, override or extend almost anything that it does. There are also a number of first-party plugins for additional or supporting functionality.
-
And much, much more...
It's hard to list everything that Sprout does and offers, so why not dive in and take a look for yourself!