jeroen-g / laravel-packager
用于创建 Laravel 扩展包的 CLI 工具。
Requires
- php: ^7.1|^8.0
- ext-json: *
- ext-zip: *
- guzzlehttp/guzzle: ~7
- illuminate/support: ^5.0|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: >=3.8
- phpunit/phpunit: ^8.0|^9.0|^10.5
Suggests
- sensiolabs/security-checker: Required to use the security check command
- dev-master
- 2.10.0
- 2.9.0
- 2.8.0
- 2.7.2
- V2.7.1
- V2.7
- V2.6
- V2.5.3
- V2.5.2
- V2.5.1
- 2.5
- V2.4
- V2.3.1
- V2.3
- V2.2
- V2.1.3
- V2.1.2
- V2.1.1
- V2.1
- V2.0.1
- 2.0
- v1.6
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- V1.5.1
- v1.5
- v1.4
- v1.3
- v1.2
- v1.1
- v1.0
- v0.2.1
- v0.2
- v0.1
- dev-dependabot/composer/phpunit/phpunit-tw-11.3.1
- dev-dependabot/composer/phpunit/phpunit-tw-11.2.9
- dev-shift-111011
- dev-three
This package is auto-updated.
Last update: 2024-09-01 04:58:30 UTC
README
此包提供了一种简单的方法来设置新的包,并允许您专注于包的开发,而不是模板。如果您喜欢视觉解释,请查看 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.json
和 config/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 了解更多信息。