blok/laravel-package-generator

一个 Laravel 包生成器

1.0.0 2019-08-12 20:59 UTC

This package is auto-updated.

Last update: 2024-09-16 19:41:59 UTC


README

Scrutinizer Code Quality Packagist Packagist Packagist

一个简单的包,快速生成其他 Laravel 包的基本结构,灵感来源于 Alexander Melihov 的 Laravel 包生成器。

安装

通过 composer 安装

composer require --dev blok/laravel-package-generator

将服务提供者添加到 config/app.php 文件的 providers 部分中(如果您使用的是 laravel>=5.5 且具有包自动发现功能,这一步是可选的)

Blok\LaravelPackageGenerator\ServiceProvider::class,

如果您想自定义默认值,请发布包配置

php artisan vendor:publish --provider="Blok\LaravelPackageGenerator\ServiceProvider" --tag="config"

可用命令

php artisan package:new vendor package

创建新包。

示例:php artisan package:new Melihovv SomeAwesomePackage

此命令将

  • 创建 workbench/bok/some-awesome-package 文件夹
  • 在 app composer.json 中注册包
  • 从骨架文件夹复制骨架到创建的文件夹(您可以在配置中提供自定义骨架路径)
  • 运行 git init packages/blok/some-awesome-package
  • 运行 composer update blok/some-awesome-package
  • 运行 composer dump-autoload

我建议您使用交互式 -i 标志运行此命令

php artisan package:new Blok SomeAwesomePackage -i

这样您将被提示输入每个需要的值。

php artisan package:remove

删除现有包。

示例:php artisan package:remove Blok SomeAwesomePackage

此命令将

  • 运行 composer remove blok/some-awesome-package
  • 删除 packages/blok/some-awesome-package 文件夹
  • 在 app composer.json 中注销包
  • 运行 composer dump-autoload

交互模式也是可能的。

php artisan package:clone

克隆现有包。

示例:php artisan package:clone https://github.com/blok/laravel-env-validator Melihovv LaravelEnvValidator --src=src/LaravelEnvValidator

此命令将

  • packages/blok/laravel-env-validator 文件夹中克隆指定的仓库
  • 在 app composer.json 中注册包
  • 运行 composer update blok/laravel-env-validator
  • 运行 composer dump-autoload

交互模式也是可能的。如果您需要,您可以使用 -b 标志指定要克隆的分支。

自定义骨架

此包将从指定的骨架路径复制所有文件夹和文件到包文件夹中。您可以在骨架中使用模板。所有带有 tpl 扩展名的文件都将提供一些变量以供使用。将移除 tpl 扩展名。

在模板中可用的变量

  • vendor(例如,Blok)
  • package(例如,SomeAwesomePackage)
  • vendorFolderName(例如,blok)
  • packageFolderName(例如,some-awesome-package)
  • packageHumanName(例如,Some awesome package)
  • composerName(例如,blok/some-awesome-package)
  • composerDesc(例如,A some awesome package)
  • composerKeywords(例如,some,awesome,package)
  • licence(例如,MIT)
  • phpVersion(例如,>=7.0)
  • aliasName(例如,some-awesome-package)
  • configFileName(例如,some-awesome-package)
  • year(例如,2017)
  • name(例如,Alexander Melihov)
  • email(例如,blok@getblok.io
  • githubPackageUrl(例如,https://github.com/blok/some-awesome-package

您需要手动处理的事情

  • 服务提供者和别名注册(如果您使用的是 laravel <5.5)
  • 在 README.md 中
    • StyleCI 仓库标识符
    • Sensio Insight 仓库标识符
    • 包描述
    • 用法部分

安全

如果您发现任何与安全相关的问题,请通过电子邮件 amelihovv@ya.ru 反馈,而不是使用问题跟踪器。

鸣谢