I'm trying to make a bigger Laravel 5.1 application and I'd like to have my code logically separated to smaller modules or packages. So my application structure would be something like:
- app/
- config/
- ...
- modules/
- module_1
- ...
- module_n
Eeach module should have own database migrations, seeds, views, controllers and vendor/ folder with dependent packages.
I have already tried caffeinated/modules with no success.
Currently I'm using pingpong-labs/modules, which seems to be a great solution, but the problem is laravel are searching for alias classes like 'HTML' or 'Form' in root vendor/
folder and not in modules/../vendor/
folder, even though I have registered them manually in Module Service Provider.
Let say I have ModuleServiceProvider.php
in modules/
folder which looks like:
/**
* Boot the application events.
*
* @return void
*/
public function boot()
{
...
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
// These are located in modules/../vendor/ folder
$this->app->register('Collective\Html\HtmlServiceProvider');
$this->app->alias('Html', 'Collective\Html\HtmlFacade');
$this->app->alias('Form', 'Collective\Html\FormFacade');
}
I appreciated any suggestions or help. Thanks in advance.