laravel blade include使用变量_如何使用模块/插件机制,更灵活组织Laravel工程

e8578cd8a1719cab54aa3fed3ba83603.png

有时候我们需要把 Laravel 工程拆分成不同的模块或功能管理,可以分配不同的工程师负责不同的模块,也方便在不同的工程之间相互使用。

有一个 nwidart/laravel-modules 就是作为 modules 来管理的,但有些问题:

1. 生成的包里过于依赖 nwidart/laravel-modules,比如自动加载过程和 module_path 的函数依赖,造成生产环境也不能脱离,还有 modules.json 等一些啰嗦的多余文件。其实一点意义都没有,因为包通过 Laravel Service Provider 标准管理即可。

2. 目录结构和 laravel 有些出入,比如 Models,他起名叫 Entities。

3. 比如用 make-command,生成的 Command 和 Laravel 脚手架的内容也不一样,内容还有些啰嗦。

这个包解决了上面的问题,而且还可以制作标准的 composer package。

在我们实际项目里一直作为模块的管理方式,也可以考虑做成动态的插件机制。

一、安装

composer require --dev zencodex/package-make

二、使用方法

// Modules/NewPackagephp artisan package:make NewPackage// 目录结构:Modules/NewPackage├── Config│   └── config.php├── Console│   └── UserCommand.php├── Database│   ├── Migrations│   ├── Seeders│   │   └── NewPackageDatabaseSeeder.php│   └── factories├── Http│   ├── Controllers│   │   └── NewPackageController.php│   ├── Middleware│   ├── Requests│   └── Resources│       └── UserResource.php├── Models│   └── User.php├── Providers│   ├── NewPackageServiceProvider.php│   └── RouteServiceProvider.php├── Resources│   ├── assets│   │   ├── js│   │   │   └── app.js│   │   └── sass│   │       └── app.scss│   ├── lang│   └── views│       ├── index.blade.php│       └── layouts│           └── master.blade.php├── Routes│   ├── api.php│   └── web.php├── Tests│   ├── Feature│   └── Unit├── composer.json├── package.json└── webpack.mix.js

三、项目里使用方法

option 1:

// app/Providers/AppServiceProvider.phpuse ModulesNewPackageProvidersNewPackageServiceProvider;class AppServiceProvider extends ServiceProvider    public function register()    {        $this->app->register(NewPackageServiceProvider::class);        ...    }

or Edit config/app.php, add ModulesNewPackageProvidersNewPackageServiceProvider::class to providers.

    'providers' => [        IlluminateValidationValidationServiceProvider::class,        IlluminateViewViewServiceProvider::class,        ModulesNewPackageProvidersNewPackageServiceProvider::class        ...    ],

option 2:

// 1. edit composer.json, add following"repositories": [    {        "type": "path",        "url": "Modules/*"    }]// use private package or gitlab"repositories": [    {        "type": "vcs",        "url": "git@gitlab.example.com:/newpackage.git"    }]// 2. composer require local path package (replace package/newpackage to yours)composer require package/newpackage

其他详细内容可以参考我的 gihub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值