zencodex/package-make

此包已被废弃且不再维护。没有建议的替代包。

创建独立的laravel包/插件

v1.0.6 2022-02-26 07:55 UTC

This package is auto-updated.

Last update: 2022-07-01 00:08:37 UTC


README

package-make已被废弃,请使用packagit

https://github.com/packagit/packagit

创建PHP或laravel包/插件

Latest Version on Packagist Build Status Quality Score Total Downloads

您可以使用多个独立的laravel包来管理大型项目。

感谢 nwidart/laravel-modules,我从其中获得了许多代码并重新实现。

为什么我重新实现(不使用 nwidart/laravel-modules)?

  1. nwidart/laravel-modules 生成的 stub 注入了 module_path,在生产环境中无法移除。
  2. 只是一个标准的 composer 包,您不需要 nwidart/laravel-modules 来管理模块。
  3. 更新一些 stub 和文件夹结构,保持与 laravel 一致。
  4. 您可以在生产环境中移除此包,只在开发环境中需要。

因此我创建了新的 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。请参阅 许可文件 获取更多信息。