Composer 扩展开发:本地运行扩展包

翻译 Summer ⋅ 于 5个月前 ⋅ 最后回复由 梦浪的小虾米 2个月前 ⋅ 1215 阅读 ⋅ 原文地址

站点的翻译文章创建时,您将第一时间收到通知。

这是一篇社区协同翻译的文章,已完成翻译,更多信息请点击 协同翻译介绍

file

假设你开发了一个网站,并希望将网站的其中一部分分开独立成为一个包。你新建了一个新的仓库并在开发环境中准备好了,这时候你想看看网站和你自己新的包是怎样整合一起使用的,应该怎样去做呢?

本文将介绍如何使用 Composer 将本地的软件包加入到项目中。通过这种方式,你可以运行存储库的本地副本并测试您所做的任何更改。因为本地仓库会实时同步修改的内容,所以不需要中间提交和更新。

科大大 翻译于 5个月前

路径形式的仓库

首先,composer.json 文件中添加一个类型为 "path" 的仓库。这样,Composer 就能通过制定的路径(不是 Packagist 仓库的形式)找到依赖的资源。

我本地的开发环境是 Laravel Homestead。我的代码 php-cca 保存在 /home/vagrant/Code/php-cca 路径下,这也是 Composer 的工作目录。

"repositories":[
    {
        "type": "path",
        "url": "/home/vagrant/Code/php-cca"
    }
]

当我们下次运行 Composer 时,就会同时从 Packagist 和给定的路径查找依赖的资源。并且路径形式的仓库优先级高于 Packagist。

zyxcba 翻译于 4个月前

引入一个开发分支

现在 Composer 知道该怎么加载本地扩展包了,接下来引入一个具体版本。可以使用下面的命令来引入 dev-develop 分支:

composer require barryvanveen/php-cca dev-develop

通过使用上面的命令,可以从 develop 分支下拉取最新版本的代码。同时,也可以很轻松的切换到 dev-master 或者 dev-feature-awesome 分支。

这样,就可以从我们的本地安装最新版本的代码,而不仅是拉取我们提交或标记的版本代码。

Composer 会在控制台输出类似下面的提示:

Package operations: 5 installs, 0 updates, 0 removals
  ...
  - Installing barryvanveen/php-cca (dev-develop): Symlinking from /home/vagrant/Code/php-cca
  ...

现在,可以直接修改本地代码,并且可以在项目中直接测试,不需要提交或执行 composer update。 是不是非常棒!

zyxcba 翻译于 4个月前

当符号链接失败时

当我初次尝试上面我提到的步骤时,他没有成功。 我得到以下错误,声明 Composer 无法创建符号链接。

打包操作: 5 安装, 0 更新, 0 移除
  ...
  - Installing barryvanveen/php-cca (dev-develop): Symlinking from /home/vagrant/Code/php-cca
    Symlink failed, fallback to use mirroring!
    Mirroring from /home/vagrant/Code/php-cca

经过一番搜索之后, 这个问题是特定出现在运行虚拟机的 Windows 用户中。 Windows 不允许本地管理员创建符号链接。 幸运的是这个可以通过一个单一的更改来解决。

当你启动虚拟机时,请确保你 以管理员身份 执行操作。 就我而言, 我以管理员身份运行 Git Bash , 然后从这里执行 vagrant up ,  这立即解决了问题。

BradStev 翻译于 4个月前
rayle 审阅

扩展阅读

Chasers9527 翻译于 5个月前
rayle 审阅

原文地址:https://barryvanveen.nl/blog/44-package-...

译文地址:https://laravel-china.org/topics/8740/co...


本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

本帖已被设为精华帖!
回复数量: 1
  • 刚刚翻译了一半,突然想到自己英语水平一般,php也一般,单纯的是想提升一下自己的英语能力和php能力。放弃了一次自我提升的机会。心里很难受,但是我又怕我翻译的不对,你们会不会吐槽我。真心只是想提升一下自己。

    4个月前
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 250 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Composer 中文文档

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档