zencodex / package-make
此包已被废弃且不再维护。没有建议的替代包。
创建独立的laravel包/插件
v1.0.6
2022-02-26 07:55 UTC
Requires
- php: ^7.1|^8.0
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0
README
package-make已被废弃,请使用packagit
https://github.com/packagit/packagit
创建PHP或laravel包/插件
您可以使用多个独立的laravel包来管理大型项目。
感谢 nwidart/laravel-modules,我从其中获得了许多代码并重新实现。
为什么我重新实现(不使用 nwidart/laravel-modules)?
nwidart/laravel-modules生成的 stub 注入了module_path,在生产环境中无法移除。- 只是一个标准的 composer 包,您不需要
nwidart/laravel-modules来管理模块。 - 更新一些 stub 和文件夹结构,保持与 laravel 一致。
- 您可以在生产环境中移除此包,只在开发环境中需要。
因此我创建了新的 zencodex/package-make,解决了上述问题。
安装
您可以通过 composer 安装此包
composer require --dev zencodex/package-make
用法
// modules/NewPackage php artisan package:make NewPackage
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
自定义命名空间和路径
php artisan vendor:publish --tag=package
// edit config/package.php // use namespace Balabala // generate package files in plugins folder return [ // Custom package namespace 'namespace' => 'Balabala', 'paths' => [ // Custom generated files path 'modules' => base_path('plugins'), // ...
在项目中使用
选项1
// app/Providers/AppServiceProvider.php use Package\NewPackage\Providers\NewPackageServiceProvider; class AppServiceProvider extends ServiceProvider public function register() { $this->app->register(NewPackageServiceProvider::class); ... }
或者
编辑 config/app.php,将 Package\NewPackage\Providers\NewPackageServiceProvider::class 添加到 providers 中。
'providers' => [ Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, Package\NewPackage\Providers\NewPackageServiceProvider::class ... ],
选项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
测试
composer test
更新日志
请查看 CHANGELOG 获取更多信息,了解最近的变化。
贡献
请查看 CONTRIBUTING 获取详细信息。
安全
如果您发现任何安全问题,请通过电子邮件 v@yinqisen.cn 联系我们,而不是使用问题跟踪器。
致谢
许可
Apache 许可证 2.0。请参阅 许可文件 获取更多信息。