L5Modular, 处理和生成 Laravel 5模块

分享于 

6分钟阅读

GitHub

  繁體 雙語
Module FileSystem for Laravel 5
  • 源代码名称:L5Modular
  • 源代码网址:http://www.github.com/Artem-Schander/L5Modular
  • L5Modular源代码文档
  • L5Modular源代码下载
  • Git URL:
    git://www.github.com/Artem-Schander/L5Modular.git
    Git Clone代码到本地:
    git clone http://www.github.com/Artem-Schander/L5Modular
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/Artem-Schander/L5Modular
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    L5Modular

    LaravelReleaseSourceDownloadsLicense

    这个软件包提供了在 MODULE 系统中使用 Laravel 5的能力。 你可以简单地删除或者生成带有自己控制器。模型。视图。翻译和路由文件的模块到 app/Modules 文件夹中,然后继续使用它们。

    感谢zyhn的"。Laravel 5中的模块结构"教程。 很好的解释并帮助了很多人。

    文档

    安装

    安装这个软件包的最好方法是通过Composer通过终端。

    从项目的root 运行以下命令

    composer require artem-schander/l5-modular

    完成这里操作后,只需将服务提供程序添加到项目的config/app.php 中,就完成了。

    服务提供程序
    ArtemSchanderL5ModularModuleServiceProvider::class,

    正在启动

    内置的工匠命令 php artisan make:module name [--no-migration] [--no-translation]app/Modules 文件夹中生成可以使用的MODULE,如果需要,则生成迁移/转换。

    自 1.3.0版以来,你可以生成一个名为多个单词的模块,如 foo-bar

    这就是生成的MODULE的外观:

    
    laravel-project/
    
    
     app/
    
    
     └── Modules/
    
    
     └── FooBar/
    
    
     ├── Controllers/
    
    
     │ └── FooBarController.php
    
    
     ├── Models/
    
    
     │ └── FooBar.php
    
    
     ├── Views/
    
    
     │ └── index.blade.php
    
    
     ├── Translations/
    
    
     │ └── en/
    
    
     │ └── example.php
    
    
     ├── routes
    
    
     │ ├── api.php
    
    
     │ └── web.php
    
    
     └── helper.php
    
    
    
    
    

    用法

    生成的RESTful Resource Controller 和相应的routes/web.php 使它的易于实现。 在我的示例中,你将看到 Modules/FooBar/Views/index.blade.php 通过在浏览器中打开 laravel-project:8000/foo-bar

    禁用模块

    如果要禁用一个更多模块,你可以将 modules.php 添加到项目的app/config 文件夹中。 这个文件应该返回一个带有 MODULE 名称的array,该名称应该为负载。 F.a:

    return ['enable'=> ["customer","contract","reporting", ],];

    在这种情况下L5Modular将只加载这三个模块 customercontractreportingapp/Modules 文件夹中的其他所有 MODULE 都不会加载。

    如果配置文件夹中没有 modules.php 文件,L5Modular将加载所有模块。

    使用一个单独的routes.php 文件 ( à Laravel <v5.3 )。

    从 1.4.0版本开始,MODULE 结构稍微改变了。 这里不是使用单个路由文件,而是有路由文件夹,其中包含路由 web.phpapi.php。 不惊慌,旧的路线文件将被装载。 所以如果你喜欢这种方式,你可以在模块根文件夹中使用单个路由文件。

    加载附加类

    有些情况下,需要将不同的附加类加载到 MODULE 中。 因为 Laravel 使用标准的autoloading插件加载应用程序,所以只需添加文件夹和文件,几乎没有限制。 你应该记住的唯一事情就是 NAME 和类 NAME 完全相同,并添加正确的命名空间。

    F.a 如果你想添加 app/Modules/FooBar/Services/FancyService.php 你的MODULE,你绝对可以做到。 然后,该文件可以如下所示:

    <?phpnamespaceAppModulesFooBarServices;classFancyService{publicstaticfunctiondoFancyStuff() {return'some output'; } }
    更新到 1.3.0

    自 1.3.0版本之后,你必须遵循 upper camel case NAME的MODULE 文件夹。 如果你有一个 Modules/foo 文件夹,你必须把它重命名为 Modules/foo

    app/config/modules.php 文件中也有更改。 现在,你必须返回一个带有键 enable 而不是 list的array。

    许可证

    L5Modular是根据许可协议的条款获得许可的。


    相关文章