rayan-tools / l5-modular
Laravel 5 的模块化模式生成器
Requires
- php: >=5.4.0
- laravel/framework: >=5.1
README

此软件包使您能够使用模块化系统使用 Laravel 5。您可以将具有自己的控制器、模型、视图、翻译和路由文件的模块简单放入 app/Modules
文件夹中,并继续使用它们。
感谢 zyhn 提供的 "Laravel 5 的模块化结构" 教程。解释得很好,帮助很大。
文档
安装
最佳安装方式是通过终端使用 Composer。
将以下行添加到 composer.json
文件中,并运行 composer update
"RayanTools/l5-modular": "dev-master"
完成此操作后,只需将服务提供者添加到项目的 config/app.php
文件中
服务提供者
RayanTools\L5Modular\ModuleServiceProvider::class,
入门
内置的 Artisan 命令 php artisan make:module name [--no-migration] [--no-translation]
会生成一个位于 app/Modules
文件夹中的可使用模块,并在需要时生成迁移文件。
自 1.3.0 版本以来,您可以生成命名超过一个单词的模块,例如 foo-bar
。
生成的模块将如下所示
laravel-project/
app/
|-- Modules/
|-- FooBar/
|-- Controllers/
|-- FooBarController.php
|-- Models/
|-- FooBar.php
|-- Views/
|-- index.blade.php
|-- Translations/
|-- en/
|-- example.php
|-- routes.php
|-- helper.php
使用
生成的 RESTful 资源控制器
和相应的 routes.php
使得快速入门变得简单。在我的例子中,您会在浏览器中打开 laravel-project:8000/foo-bar
时看到来自 Modules/FooBar/Views/index.blade.php
的输出。
禁用模块
如果您想禁用一个或多个模块,可以将一个 modules.php
添加到项目 app/config
文件夹中。此文件应返回一个包含应 加载 的模块名称的数组。例如:
return [
'enable' => array(
"customer",
"contract",
"reporting",
),
];
在这种情况下,L5Modular 将仅加载这三个模块 customer
、contract
和 reporting
。其他任何位于 app/Modules
文件夹中的模块都不会被加载。
如果没有在配置文件夹中包含 modules.php 文件,L5Modular 将加载所有模块。
更改模板
如果您想更改模板,可以编辑项目 app/config
文件夹中的 view.php
文件,并添加键 template
与模板名称的值。
return [
'template' => 'default'
];
默认生成的模板如下所示
laravel-project/
resources/
themes/
|-- default/
|-- Module1/
|-- index.blade.php
|-- Module2/
|-- index.blade.php
|-- Module3/
|-- index.blade.php
升级到 1.3.0
自 1.3.0 版本以来,您必须遵循 大驼峰命名法
命名模块文件夹。如果您有一个 Modules/foo
文件夹,您必须将其重命名为 Modules/Foo
。
此外,app/config/modules.php
文件中也有改动。现在您需要返回一个带有 enable
键的数组,而不是 list
键。
许可证
L5Modular 遵循 MIT 许可协议(详情请参阅 LICENSE 文件)。