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)
请帮帮我,谢谢.
更新:
您基本上可以通过调整文件来实现您想要的效果,但是在和 之间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.
如果您需要在项目的Admin和Client部分之间切换,则需要调整config/modules.php文件中相同的两行以反映这一点。
还有一个警告:
如果您计划Assets在模块中使用该文件夹,则还需要调整文件中的相应行config/modules.php,并且您将需要手动调整一些方法,其中的文件路径明确写入模块的服务提供程序中(例如Admin/Blog/Providers/BlogServiceProvider.php:) ,并且您需要修复您的config/view.php- 只需按照评论操作即可。
AdminPS您也许可以创建一个自定义命令来自动在和之间切换Client。