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
命令中运行
HTTP
Controllers
- 模块的控制台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}