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

时间:2015-09-29 12:03:29

标签: php laravel module composer-php laravel-5.1

我正在使用laravel 5.1包在pingpong开发模块化项目。它给我的项目结构如下

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

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

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

请帮我解决这个问题, 感谢。

1 个答案:

答案 0 :(得分:3)

<强>更新

您可以通过调整config/modules.php文件来实现您的目标,但在AdminClient之间切换时,您必须来回切换。

例如:

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

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

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

'namespace' => 'Modules\Admin',

在同一文件中,将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'),

这就是您需要做的全部内容,致电php artisan module:make blog将在modules/admin内创建一个Blog模块。

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

还有一点需要注意:

如果您打算在模块中使用Assets文件夹,则还需要调整config/modules.php文件中的相应行,并且您需要手动调整几个方法在模块的服务提供商中明确写入的文件路径(例如:Admin/Blog/Providers/BlogServiceProvider.php),您需要修复config/view.php - 只需按照注释进行操作。

P.S。你可以创建一个自定义命令来自动切换AdminClient