jmslapa/laramodules

一个用于构建与 Laravel 应用程序解耦度极高的模块的库。

0.1.2-rc 2021-09-11 20:16 UTC

This package is auto-updated.

Last update: 2024-09-12 02:45:44 UTC


README

用于构建高度解耦的 Laravel 模块化应用的库

它是如何工作的?

该库背后的理念是使您的模块与应用程序核心真正解耦。这意味着您可以从源目录中删除模块或添加模块,而您的应用程序将自动吸收或忽略模块中实现的功能,就像真正的插件一样。考虑到这一点,设计了 ModulesServiceProvider,它可以自动加载标准目录中包含的任何提供者、路由文件和迁移,即只需实现并通过服务提供者注册,与核心的集成应该是自动的。然而,当然,模块之间的耦合程度将直接取决于您的代码。

安装

composer require jmslapa/laramodules
php artisan vendor:publish --provider=Jmslapa\Laramodules\Providers\ModulesServiceProvider

Composer.json

在项目的 composer.json 文件的 psr-4 部分添加以下条目

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Modules\\": "modules/"
    }
},

创建一个新的模块

php artisan module:make <module name>

初始模块目录结构,定义在 config/modules.php

<?php

return [
    'directories' => [
        'Http' => [
            'Controllers'
        ],
        'Migrations',
        'Models',
        'Providers',
        'Repositories',
        'Services',
        'Routes',
        'Tests' => [
            'Feature',
            'Unit'
        ],
    ]
];