jeroen-g/laravel-packager

用于创建 Laravel 扩展包的 CLI 工具。

2.10.0 2024-03-31 14:59 UTC

README

Latest Version on Packagist Total Downloads Build Status StyleCI

此包提供了一种简单的方法来设置新的包,并允许您专注于包的开发,而不是模板。如果您喜欢视觉解释,请查看 Jeffrey Way 在 Laracasts 上的此视频

安装

通过 Composer

composer require jeroen-g/laravel-packager --dev

如果您没有运行 Laravel 5.5(或更高版本),则请在 config/app.php 中添加服务提供者。

JeroenG\Packager\PackagerServiceProvider::class,

如果您在 Laravel 5.5+ 上运行此包,包自动发现 会处理添加服务提供者的魔法。请注意,自动发现还意味着此包将在您的生产环境中加载。因此,您可以选择 禁用自动发现,并在您的 AppServiceProvider 中添加类似以下内容:

if ($this->app->environment('local')) {
    $this->app->register('JeroenG\Packager\PackagerServiceProvider');
}

可选地,您可以发布配置以提供不同的服务提供者模板。默认模板在此

php artisan vendor:publish --provider="JeroenG\Packager\PackagerServiceProvider"

可用命令

New

命令

php artisan packager:new my-vendor my-package

结果:此命令将为您处理几乎所有事情。它将创建包目录,在其中创建供应商和包目录,拉取骨架包,设置 composer.json 并创建服务提供者。

选项

php artisan packager:new my-vendor my-package --i
php artisan packager:new --i

包将交互式创建,允许您在包的 composer.json 中配置一切,例如许可证和包描述。

php artisan packager:new my-vendor/my-package

或者,您也可以使用斜杠代替空格来定义您的供应商和名称。

备注:新包将基于 此自定义骨架。如果您想使用不同的包骨架,您可以选择以下方法:

  • (A) 发布配置文件并更改所有 packager:new 调用将使用的默认骨架。
  • (B) 使用 --skeleton="http://github.com/path/to/archive/master.zip" 标志和您自己的骨架来使用给定的骨架,而不是配置中的骨架。

获取 & Git

命令

php artisan packager:get https://github.com/author/repository
php artisan packager:git https://github.com/author/repository

结果:此操作将在应用的 composer.json 文件中注册包。如果使用 packager:git 命令,将克隆整个 Git 仓库。如果使用 packager:get,将下载包,不包含仓库。这也适用于 Bitbucket 仓库,但您必须为 packager:get 命令提供 --host=bitbucket 标志。

选项

php artisan packager:get https://github.com/author/repository --branch=develop
php artisan packager:get https://github.com/author/repository my-vendor my-package
php artisan packager:git https://github.com/author/repository my-vendor my-package

您可以使用 --branch 选项指定分支。如果您在 URL 后直接指定供应商和名称,则将使用这些名称而不是 URL 的片段。

测试

命令

php artisan packager:tests

结果:Packager 将遍历所有维护的包(在 packages/ 中),并将它们的测试发布到 tests/packages。要将包中的测试运行,请将以下内容添加到 phpunit.xml(在其他测试套件下):

<testsuite name="Packages">
    <directory suffix="Test.php">./tests/packages</directory>
</testsuite>

选项

php artisan packager:tests my-vendor my-package

备注:如果存在测试文件夹,文件将复制到 Laravel 应用测试文件夹中的一个专用文件夹中。这允许您无障碍地使用 Laravel 自身的所有测试功能。

列表

命令

php artisan packager:list

结果:显示 /packages 目录中所有包的概览。

选项

php artisan packager:list --git

如果是一个Git仓库,则显示包含git状态(分支,与原点的提交差异)的包信息。

移除

命令

php artisan packager:remove my-vendor my-package

结果: my-vendor\my-package 包已被删除,包括其在 composer.jsonconfig/app.php 中的引用。

发布

命令

php artisan packager:publish my-vendor my-package https://github.com/my-vendor/my-package

结果: 将使用提供的URL将 my-vendor\my-package 包发布到Github。

检查

命令

php artisan packager:check my-vendor my-package

结果: 将使用SensioLabs安全检查器检查 my-vendor\my-package 包的安全漏洞。

备注: 您首先需要运行

composer require sensiolabs/security-checker

cURL SSL证书问题

实际上,特别是在Windows上,由于操作系统缺少有关SSL证书的文件,可能会在下载骨架时出现一些问题。这可以通过打开您的 .env 文件并在其中添加以下内容来解决

CURL_VERIFY=false

当然,这意味着安全性会降低,但再次提醒,您不应该在生产环境中运行此包。

超时问题

如果您在创建新包时遇到超时问题,您现在可以将 config/packager.php 中的配置变量 timeout 修改为修复此问题。

更新日志

请参阅 changelog.md 了解最近的变化。

贡献

请参阅 contributing.md 了解详细信息和工作待办事项列表。

致谢

许可

欧盟公共许可。请参阅 license.md 了解更多信息。