kodicms / module-loader
3.2.1
2016-05-25 09:09 UTC
Requires
- php: >=5.5.9
- laravel/framework: 5.*
README
此包帮助为Laravel框架组织模块化结构。
https://packagist.org.cn/packages/kodicms/module-loader
安装
要安装此包,您可以在控制台运行以下命令:
composer require "kodicms/module-loader:3.*"
或者将包添加到 composer.json
{
"require": {
...
"kodicms/module-loader": "3.*"
...
}
}
添加服务提供者到加载
'providers' => [ ... KodiCMS\ModulesLoader\Providers\ModuleServiceProvider::class, ... ],
在 composer.json 中添加命名空间
{
"autoload": {
...
"psr-4": {
...
"Modules\\" : "modules/"
},
...
},
}
配置文件 app.php
默认情况下,系统模块存储在 modules 文件夹中,如果需要从其他目录加载模块,则必须通过配置文件指定模块的路径和命名空间。
return [
...
'modules' => [
'modulename', // Namespace: Modules\modulename, Path baseDir/modules/modulename
'ModuleName2' => [
'path' => {relative path to module},
'namespace' => '\\CustomNamespace\\ModuleName2\\'
]
]
...
];
默认情况下,加载器在连接模块时使用 KodiCMS\ModulesLoader\ModuleContainer,您可以通过创建一个位于 app\DefaultModuleContainer.php 路径的文件来覆盖容器文件,或者如果您想改变特定模块的行为,则需要在模块根目录创建一个 ModuleContainer.php 文件并从 KodiCMS\ModulesLoader\ModuleContainer 继承。
模块结构
Assets- 将被复制到public/cms/modules/{module}的资产config- 模块的配置。如果模块中有同名配置文件,则它们的内容将被合并控制台Commands- 控制台命令文件的存储位置
数据库migrations- 将在modules:migrate命令中运行的迁移文件种子DatabaseSeeder.php- 如果存在,将在modules:seed命令中运行
HTTPControllers- 模块的控制台routes.php- 当前模块的路由,被包装在Modules\{module}命名空间中
提供者ModuleServiceProvider.php- 模块服务提供者,如果文件存在,将在应用程序初始化时运行
资源lang- 模块的翻译文件,可以通过模块名称的小写键访问trans('{module}::file.key')views- 模板的模块,可以通过模块名称的小写键访问view('{module}::template')
ModuleContainer.php- 如果此文件存在,则将作为系统模块文件连接,其中指定了初始化时的相对路径和操作。必须从KodiCMS\ModulesLoader\ModuleContainer继承。
控制台命令
php artisan modules:list- 显示已连接模块列表php artisan modules:migrate- 运行模块中的迁移 (具有与标准migrate命令类似参数)php artisan modules:seed- 从模块中种植数据php artisan modules:assets:publish- 将 Assets 文件夹中的文件发布到public/modules/{module}