xcms / modules
Laravel模块管理器
Requires
- php: >=5.6.4
- illuminate/console: 5.4.*
- illuminate/database: 5.4.*
README
当你在小型项目上工作时,你会觉得Laravel默认结构已经足够。当你的项目增长时,你会考虑将你的应用程序分解成模块,其中每个模块将包含所有的资源,如控制器、模型、视图、迁移、配置等。这个laravel-module-manager
包将帮助你轻松管理Laravel模块化应用程序。
安装
composer require mrabbani/laravel-module-manager
将模块管理器服务提供者添加到config/app.php
文件中
Mrabbani\ModuleManager\Providers\ModuleProvider::class,
要创建新的模块,运行以下命令
php artisan module:create name-of-your-module
php artisan module:install {module_alias_name}
如果你的模块名称是module1
,模块结构将是
配置
默认情况下,所有模块都将放置在你的应用程序基本目录下的modules
目录中。如果你想通过module_manager
配置文件更改发布,请使用以下命令:
php artisan vendor:publish
现在你可以通过更改config/module_manager.php
文件中的module_directory
值来更改默认的modules目录。
可用命令
要查看所有模块相关命令,请在终端中运行php artisan
。可用命令有:
php artisan module:create {alias}
php artisan module:make:controller {alias} {ControllerName}
php artisan module:make:controller {alias} {ControllerName} --resource
php artisan module:make:command {alias} {CommandName}
php artisan module:make:facade {alias} {FacadeName}
php artisan module:make:middleware {alias} {MiddlewareName}
php artisan module:make:migration {alias} {migration_name} --create --table=table_name
php artisan module:make:migration {alias} {migration_name} --table=table_name
php artisan module:make:model {alias} {ModelName}
php artisan module:make:model {alias} {ModelName} --migration
php artisan module:make:provider {alias} {ProviderName}
php artisan module:make:request {alias} {RequestName}
php artisan module:make:service {alias} {ServiceClassName}
php artisan module:make:support {alias} {SupportClassName}
php artisan module:migrate {alias}
php artisan module:migrate:rollback {alias}
php artisan module:routes
php artisan module:install {alias}
php artisan module:uninstall {alias}
php artisan module:enable {alias}
php artisan module:disable {alias}
'alias'是模块的别名。你可以在模块目录下的
module.json
文件中找到模块的别名
你必须安装你的模块才能激活
php artisan module:install {alias}
加载组件
你必须通过以下laravel包加载视图、配置和翻译
加载视图
view(module_alias::view_file)
你可以这样加载module1
模块的index.blade.php
视图
view('module1::index');
加载翻译
你可以这样加载module1
模块的welcome
行,从messages
文件中
trans('module1::messages.welcome');
加载配置文件
你可以这样加载module1
模块的welcome
行,从messages
文件中
config('messages.welcome');
你必须合并配置,在ModuleServiceProvider
提供者的register
方法中使用mergeConfigFrom
方法
public function register()
{
$this->mergeConfigFrom(
__DIR__.'/../../config/messages.php', 'messages'
);
}
你应该在ModuleServiceProvider提供者的register方法中注册所有模块的自定义提供者,而不是在应用程序的config/app.php文件中。