Php 在单个laravel应用程序中创建模块

Php 在单个laravel应用程序中创建模块,php,laravel,module,composer-php,hmvc,Php,Laravel,Module,Composer Php,Hmvc,我正在尝试制作一个更大的Laravel5.1应用程序,我希望我的代码在逻辑上被分割成更小的模块或包。 因此,我的应用程序结构类似于: 应用程序/ 配置/ 模块/ 单元1 模块 每个模块都应该有自己的数据库迁移、种子、视图、控制器和带有依赖包的供应商/文件夹 我已经试过了,但没有成功 目前我正在使用,这似乎是一个很好的解决方案,但问题是laravel正在根vendor/文件夹而不是modules/./vendor/文件夹中搜索别名类,如“HTML”或“Form”,尽管我已经在模块服务提

我正在尝试制作一个更大的Laravel5.1应用程序,我希望我的代码在逻辑上被分割成更小的模块或包。 因此,我的应用程序结构类似于:

  • 应用程序/
  • 配置/
  • 模块/
    • 单元1
    • 模块
每个模块都应该有自己的数据库迁移、种子、视图、控制器和带有依赖包的供应商/文件夹

我已经试过了,但没有成功

目前我正在使用,这似乎是一个很好的解决方案,但问题是laravel正在根
vendor/
文件夹而不是
modules/./vendor/
文件夹中搜索别名类,如“HTML”或“Form”,尽管我已经在模块服务提供商中手动注册了它们。 假设我在
modules/
文件夹中有
ModuleServiceProvider.php
,它看起来像:

/**
 * 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');
}

我很感激任何建议或帮助。提前感谢。

首先,请确保这些别名(如果应用程序中已经存在)已被实际设置。您可能希望检查config/app.php并删除任何已经使用它们的外观或别名,看看它是否开始工作。在app/config.php中不是全局的。虽然我不是Laravel方面的专家,但应用程序是全局的,这就是IoC容器的工作方式(处理绑定、注入和别名)。如果你想像Laravel那样使用Facades,你将在Laravel应用程序的范围内操作。我不确定你是否可以,但你可以尝试让每个模块独立地拉入拉雷维尔的IoC,让它在本地处理事情,但我觉得这是不必要的。多个IoC容器。。。不确定这将如何影响性能或应用程序。看起来你想把Laravel变成Symfony。我从来没有用过Symphony,我对Laravel和PHP都是新手。因此,在一个全球IoC内不可能有单独的模块和自己的外墙等?那么有没有可能呢?我看到他取得了我想要的东西。。。但不知道如何设置。首先,确保这些别名(如果应用程序中已经存在)已被实际设置。您可能希望检查config/app.php并删除任何已经使用它们的外观或别名,看看它是否开始工作。在app/config.php中不是全局的。虽然我不是Laravel方面的专家,但应用程序是全局的,这就是IoC容器的工作方式(处理绑定、注入和别名)。如果你想像Laravel那样使用Facades,你将在Laravel应用程序的范围内操作。我不确定你是否可以,但你可以尝试让每个模块独立地拉入拉雷维尔的IoC,让它在本地处理事情,但我觉得这是不必要的。多个IoC容器。。。不确定这将如何影响性能或应用程序。看起来你想把Laravel变成Symfony。我从来没有用过Symphony,我对Laravel和PHP都是新手。因此,在一个全球IoC内不可能有单独的模块和自己的外墙等?那么有没有可能呢?我看到他取得了我想要的东西。。。但我不知道怎么做。