原文链接:https://juejin.im/entry/5b0e6c086fb9a00a1071b78d
如果你想让你创建的 Laravel 包能在真正的应用程序中试用,可以试着通过本地文件符号链接在本地开发的 Composer 包,这能极大地加速你的开发工作。推荐阅读 Caleb Porzio 的 花式 bash 别名,这是一个受 npm link
启发的 bash 别名。 我一直在努力改进我的本地工作流程,以便将 Laravel 软件包从开发中释放出来。我经常发现自己会通过 GitHub repo 安装依赖项,然后一遍又一遍地运行 composer update
。因为懒,所以我更新了一些东西。
我会记录我的工作流程,以开发新的和现有的 Laravel 软件包,并在真正的 Laravel 应用程序中运行全部在本地的它们。
软件包设置
我将引导你从头开始创建一个快速 Composer 包并添加一个服务提供器。 我知道一些软件包开发人员使用样板库作为 PHP 和 Laravel 软件包的起点(请参阅 Spatie 的 PHP Skeleton 来获取灵感)。 首先,让我们创建一个 Composer 项目示例并与 Laravel 服务提供器挂钩。 本文内容都在我的 ~/code
目录下:
cd ~/code mkdir example-pkg cd example-pkg/ mkdir src/ composer init # Walk through the prompts to init...
在生成 composer.json
文件后,再为自动加载和自动注册服务提供器添加一些内容:
{ "name": "paul/example-package", "authors": [ { "name": "Paul Redmond", "email": "paul@example.com" } ], "autoload": { "psr-4": { "ExamplePackage\\": "src/" } }, "require": {}, "extra": { "laravel": { "providers": [ "ExamplePackage\\ExamplePackageServiceProvider" ] } } }
最后,让我们来创建一个 skeleton 服务提供器:
<?php namespace ExamplePackage; use Illuminate\Support\ServiceProvider; class ExamplePackageServiceProvider extends ServiceProvider { public function boot() { # code... } public function register() { # code... } }
将软件包链接到 Laravel 项目
既然我们有一个本地的 composer 项目,我们可以使用它开始开发一个新的 Laravel 软件包。创建一个演示用的 Laravel 应用程序,使用本地文件路径链接我们的示例包:
cd ~/code laravel new laravel-demo cd laravel-demo
我鼓励你查看 Caleb Portzio 的 bash别名,下面是你连接本地存储库所需的静态命令:
composer config repositories.local '{"type": "path", "url": "../example-pkg"}' --file composer.json
接下来,我们需要运行 composer require
来添加本地存储库作为依赖项。请记住使用你在 example-package
composer 文件中定义的 "name"
键:
composer require paul/example-package Using version dev-master for paul/example-package ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > [@php](https://laravel-china.org/users/10050) artisan package:discover Discovered Package: fideloper/proxy Discovered Package: laravel/tinker Discovered Package: nunomaduro/collision Discovered Package: paul/example-package Package manifest generated successfully.
你可以看到我们的软件包是通过 composer.json
文件中的 "extra"
键发现的。
如果你检查文件系统,你会注意到该软件包是符号链接的,这意味着你可以继续在本地软件包上开发并立即在演示项目中进行试用:
cd ~/code/laravel-demo ls -la vendor/paul total 0 . .. example-package -> ../../../example-pkg
现在你可以在本地 Laravel 应用程序中开发 Laravel 软件包了!这多亏了 Caleb 神奇的别名!!!
原文地址:laravel-news.com/developing-… 译文地址:laravel-china.org/topics/1102…
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
共同学习,写下你的评论
评论加载中...
作者其他优质文章