rodrigobutta/laravel-attachable-modules

使用独立模块使您的项目可扩展

v1.1.1 2017-10-02 19:11 UTC

This package is not auto-updated.

Last update: 2024-09-17 19:05:47 UTC


README

使用独立模块使您的项目可扩展

工作原理

一个项目将包含模块,例如,您可能需要一个产品模块和一个用户模块,在这种情况下,您的项目结构将如下所示:\App\Modules\Project**** \App\Modules\User****

其中 ProjectUser 分别是每个模块的文件夹,并将包含每个模块所需的所有文件(除了配置或数据库相关文件外,不应有文件散布在此文件夹之外)

在每个模块文件夹内部,应该有一个名为 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 扩展名)

添加模块

非常简单!

  1. 将模块文件夹复制到 app\Modules\(或您定义的用于存储模块的文件夹)中

  2. 终端

composer dump-autoload
  1. 现在模块已被调用。根据模块架构,您应该知道如何测试或访问其功能。