rodrigobutta / laravel-attachable-modules
使用独立模块使您的项目可扩展
v1.1.1
2017-10-02 19:11 UTC
Requires
- php: >=7.0.0
- laravel/framework: 5.5.*
This package is not auto-updated.
Last update: 2024-09-17 19:05:47 UTC
README
使用独立模块使您的项目可扩展
工作原理
一个项目将包含模块,例如,您可能需要一个产品模块和一个用户模块,在这种情况下,您的项目结构将如下所示:\App\Modules\Project**** \App\Modules\User****
其中 Project 和 User 分别是每个模块的文件夹,并将包含每个模块所需的所有文件(除了配置或数据库相关文件外,不应有文件散布在此文件夹之外)
在每个模块文件夹内部,应该有一个名为 Boot Service Provider 的服务提供者。Boot 服务提供者文件是定义模块的地方,包括其命名空间、视图、配置、语言等。
Laravel Attachable Modules 将搜索每个 Boot Service Provider 文件,并使用它来加载每个模块到项目中。请参阅配置文件以设置此逻辑(如果您不使用默认的配置)。
此包中包含一个演示模块("demos"),它具有所需的架构,并与 RodrigoButta/laravel-admin 一起使用,以在几行代码中处理后端。但当然,您可以将它删除,并像样板代码一样使用模块。
安装
composer.json
"require": { "rodrigobutta/laravel-attachable-modules": ">=1.0.0", }
终端
composer update
config/app.php
'providers' => [ [...] RodrigoButta\AttachableModules\AttachableModulesServiceProvider::class ],
终端
php artisan vendor:publish
config/attachable-modules.php
- modules_folder_path:模块所在的路径(每个模块应有一个自己的文件夹,包含启动提供者和任何运行所需的文件)
- module_boot_provider_prefix:预期的启动服务提供者文件前缀
- module_boot_provider_suffix:预期的启动服务提供者文件后缀(不带 .php 扩展名)
添加模块
非常简单!
-
将模块文件夹复制到 app\Modules\(或您定义的用于存储模块的文件夹)中
-
终端
composer dump-autoload
- 现在模块已被调用。根据模块架构,您应该知道如何测试或访问其功能。