thegeekengineer/laravel-packager

一个用于创建Laravel扩展包的命令行工具。

V1.0.1 2023-11-24 22:51 UTC

This package is auto-updated.

Last update: 2024-09-25 00:37:59 UTC


README

Latest Version on Packagist Total Downloads Build Status StyleCI

本扩展包为您提供了一个简单的工具,用于设置新扩展包,并让您专注于扩展包的开发,而不是样板代码。如果您喜欢视觉解释,请查看Laracasts上的Jeffrey Way的视频:Building Laracasts

安装

通过Composer

composer require thegeekengineer/laravel-packager --dev

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

TheGeekEnginee\Packager\PackagerServiceProvider::class,

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

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

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

php artisan vendor:publish --provider="TheGeekEnginee\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 App测试文件夹中的专用文件夹。这允许您无任何麻烦地使用所有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 了解更多信息。