Создание папок модуля в laravel 5.1 с использованием пакета pingpong

Я разрабатываю модульный проект в 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" и "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

пожалуйста, помогите мне, Спасибо.

Ответы

Ответ 1

UPDATE:

В основном вы можете добиться того, что ищете, отредактировав файл config/modules.php, но при переключении между Admin и Client вам придется переключать его обратно и вперед.

Например:

Чтобы сгенерировать (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.

Если вам нужно переключиться между частью Admin и Client вашего проекта, вам нужно будет настроить те же две строки в файле config/modules.php, чтобы они отражались как таковые.

Есть еще одна оговорка:

Если вы планируете использовать папку Assets в своих модулях, вам также нужно будет отрегулировать соответствующую строку в файле config/modules.php, и вам нужно будет вручную настроить несколько методов с файловыми путями, явно написанными внутри вашего поставщика услуг модуля (например: Admin/Blog/Providers/BlogServiceProvider.php), и вам нужно будет исправить ваш config/view.php - просто следуйте комментариям.

P.S. вы можете создать пользовательскую команду для автоматизации переключения между Admin и Client.