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

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

路径形式的仓库

首先,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。

引入一个开发分支

现在 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。 是不是非常棒!

当符号链接失败时

当我初次尝试上面我提到的步骤时,他没有成功。 我得到以下错误,声明 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 ,  这立即解决了问题。

扩展阅读

学习更多关于 Composer repositories 和 aliases 在这些文档中.

Martin Hujer 已经发表了一个博客在 使用 Composer 的22个技巧.

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接

我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

php扩展包启动,Composer 扩展开发:本地运行扩展包相关推荐

  1. linux 后台运行jar包命令,Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

  2. centos运行jar包需要的环境_Centos7前后台运行jar包

    方式一: java -jar lf-test-1.0-SNAPSHOT.jar 前台运行,当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出. 方式二: java -ja ...

  3. java -jar 运行jar包_用java –jar 命令运行Jar包

    用java –jar 命令运行Jar包 摘要 这个技巧阐明了如何不直接处理清单文件而将一个不能运行jar包转换成一个可以执行的jar包.学会如何写一段转换jar包的程序,将你的jar包转换成你能使用j ...

  4. java如何转成jar包,修改及反编译可运行Jar包实现过程详解

    将可运行Jar包,反编译成项目,修改代码,再次编译,打包. 需要工具:jd-gui.myeclipse 具体步骤: 1.使用jd-gui打开原始的Jar包,选择File-->Save All S ...

  5. composer php 扩展,正确的Composer扩展包安装方法

    下面由composer教程栏目给大家介绍正确的 Composer 扩展包安装方法,希望对需要的朋友有所帮助! 问题说明 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文 ...

  6. Safari12通过扩展构建器自动化安装非Apple Store扩展ublock origin

    因为Safari 12版的策略不允许通过安装包进行安装了,但是可以通过开发–>显示扩展资源器 来对ublock.safariextension进行安装,但是在重启Safari后该扩展就会失效,需 ...

  7. 运行SSIS包的几种方式

    很多程序员,不止.net程序员都有可能会用到SSIS包来处理一些数据流程上的任务.可以说SSIS作为BI下的一个ETL工具,方便易学,而且功能也确实很强大.于是开发OLTP的同事总会到我们这边寻求技术 ...

  8. 总结运行SSIS包的几种方式

    很多程序员,不止.net程序员都有可能会用到SSIS包来处理一些数据流程上的任务.可以说SSIS作为BI下的一个ETL工具,方便易学,而且功能也确实很强大.于是开发OLTP的同事总会到我们这边寻求技术 ...

  9. hadoop 运行jar包

    我们在eclipse 打包好jar包后需要上传到udantu系统. 我们用Xshell 工具上传,步骤如下图所示: 这时候jar包已经上传成功了,在udantu查看jar包的位置 ll 现在就可以运行 ...

最新文章

  1. 面试题必问: 遇到过线上问题没,你是怎么排查的?
  2. TCP三次握手与四次分手
  3. 阿里云异构计算团队亮相英伟达2018 GTC大会
  4. 禁用微信 webview 调整字体大小
  5. linux i2c子系统看不懂啊,Linux 下的I2C子系统
  6. The Report(连接查询)
  7. Redis---持久化
  8. CentOS 7 安装nexus
  9. 【c# 学习笔记】所有类的父类:System.object
  10. 万字长文梳理:从0开始,步入Service Mesh微服务架构的世界
  11. python参数估计置信区间_python中分布参数的置信区间估计
  12. HTML,CSS基础十大重点问题
  13. 用python绘制彩色_使用Python/Matplotlib基于彩色地图绘制(极轴)色轮
  14. 长沙.NET技术社区正式成立
  15. linux中重要文件夹介绍
  16. PPT居然还可以一键换色!学会这4招再也不怕色了……
  17. 三只松鼠3次方新品魅力何在?
  18. 照片去雾怎么操作?学会这招就不用担心雾化了
  19. 行业寒冬:java生成微信支付二维码
  20. 特殊数字符号大全,word 数学符号

热门文章

  1. java动态url_使用url Param的动态主题
  2. 技术前沿:Redis推出性能碾压ES和Mongo的大杀器
  3. 每日一皮:资深老鸟看实习生写代码...
  4. 一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式
  5. 听过TB、PB级大数据,ZB级的大数据探索与应用实践是怎么样的?【附PPT】
  6. 死磕Java并发:J.U.C之阻塞队列:PriorityBlockingQueue
  7. can‘t convert cuda:0 device type tensor to numpy
  8. python 图像计算方位角
  9. python3 通过 pybind11 使用Eigen加速
  10. raspberry pi 3B 树莓派 安装tensorflow