使用pingpong包在laravel 5.1中创建子模块文件夹

Pri*_*ank 15 php module laravel composer-php laravel-5.1

我在开发模块化项目laravel 5.1使用乒乓球 package.Which给我的项目结构如下图

laravel-app/
    app/
    bootstrap/
    vendor/
    modules/
      ??? Blog/
          ??? Assets/
          ??? Config/
          ??? Console/
          ??? Database/
              ??? Migrations/
              ??? Seeders/
          ??? Entities/
          ??? Http/
              ??? Controllers/
              ??? Middleware/
              ??? Requests/
              ??? routes.php
          ??? Providers/
              ??? BlogServiceProvider.php
          ??? Resources/
              ??? lang/
              ??? views/
          ??? Repositories/
          ??? Tests/
          ??? composer.json
          ??? module.json
          ??? start.php
Run Code Online (Sandbox Code Playgroud)

我想在"admin"和"client"中分隔这些模块文件夹,以区分我的客户端和管理员端,如下所示,

laravel-app/
    app/
    bootstrap/
    vendor/
    modules/
      ??? Admin/
          ??? Blog/
              ??? Assets/
              ??? Config/
              ??? Console/
              ??? Database/
                  ??? Migrations/
                  ??? Seeders/
             ??? Entities/
             ??? Http/
                  ??? Controllers/
                  ??? Middleware/
                  ??? Requests/
                  ??? routes.php
             ??? Providers/
                 ??? BlogServiceProvider.php
             ??? Resources/
                 ??? lang/
                 ??? views/
             ??? Repositories/
             ??? Tests/
             ??? composer.json
             ??? module.json
             ??? start.php
      ??? Client/
          ??? Blog/
              ??? Assets/
              ??? Config/
              ??? Console/
              ??? Database/
                  ??? Migrations/
                  ??? Seeders/
             ??? Entities/
             ??? Http/
                  ??? Controllers/
                  ??? Middleware/
                  ??? Requests/
                  ??? routes.php
             ??? Providers/
                 ??? BlogServiceProvider.php
             ??? Resources/
                 ??? lang/
                 ??? views/
             ??? Repositories/
             ??? Tests/
             ??? composer.json
             ??? module.json
             ??? start.php
Run Code Online (Sandbox Code Playgroud)

请帮帮我,谢谢.

tam*_*am5 4

更新:

您基本上可以通过调整文件来实现您想要的效果,但是在和 之间config/modules.php切换时,您必须来回切换它。AdminClient

例如:

要在项目的一部分中生成 ( module:make) 或使用 ( module:use) 模块Admin,您需要执行以下操作:

config/modules.php文件中,调整namespace

/*
|--------------------------------------------------------------------------
| Module Namespace
|--------------------------------------------------------------------------
|
| Default module namespace.
|
*/

'namespace' => 'Modules\Admin',
Run Code Online (Sandbox Code Playgroud)

在同一个文件中,调整base_path

/*
|--------------------------------------------------------------------------
| Modules path
|--------------------------------------------------------------------------
|
| This path used for save the generated module. This path also will added
| automatically to list of scanned folders.
|
*/

'modules' => base_path('modules/admin'),
Run Code Online (Sandbox Code Playgroud)

这就是您需要做的所有事情,调用php artisan module:make blog将在modules/admin.

如果您需要在项目的AdminClient部分之间切换,则需要调整config/modules.php文件中相同的两行以反映这一点。

还有一个警告:

如果您计划Assets在模块中使用该文件夹,则还需要调整文件中的相应行config/modules.php,并且您将需要手动调整一些方法,其中的文件路径明确写入模块的服务提供程序中(例如Admin/Blog/Providers/BlogServiceProvider.php:) ,并且您需要修复您的config/view.php- 只需按照评论操作即可。

AdminPS您也许可以创建一个自定义命令来自动在和之间切换Client