rayan-tools/l5-modular

Laravel 5 的模块化模式生成器

1.3.4 2016-11-30 09:46 UTC

This package is not auto-updated.

Last update: 2024-09-23 16:01:24 UTC


README

Laravel 发布 源代码 ![贡献者](https://img.shields.io/badge/contributor-Farhan Wazir-blue.svg) 许可

此软件包使您能够使用模块化系统使用 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 将仅加载这三个模块 customercontractreporting。其他任何位于 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 文件)。