位置: 编程技术 - 正文

PHP 开发者该知道的 5 个 Composer 小技巧(php开发实战权威指南)

编辑:rootadmin

推荐整理分享PHP 开发者该知道的 5 个 Composer 小技巧(php开发实战权威指南),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php开发工程师是干嘛的,php开发实战权威指南,php的开发工具,php开发实战权威指南,php开发什么意思,php的开发工具,php开发实战权威指南,php的开发模式,内容如对您有帮助,希望把文章链接给更多的朋友!

Composer 是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时代》。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。

1. 仅更新单个库

只想更新某个特定的库,不想更新它的所有依赖,很简单:

此外,这个技巧还可以用来解决“警告信息问题”。你一定见过这样的警告信息:

擦,哪里出问题了?别惊慌!如果你编辑了composer.json,你应该会看到这样的信息。比如,如果你增加或更新了细节信息,比如库的描述、作者、更多参数,甚至仅仅增加了一个空格,都会改变文件的md5sum。然后Composer就会警告你哈希值和composer.lock中记载的不同。

那么我们该怎么办呢?update命令可以更新lock文件,但是如果仅仅增加了一些描述,应该是不打算更新任何库。这种情况下,只需update nothing:

这样一来,Composer不会更新库,但是会更新composer.lock。注意nothing并不是update命令的关键字。只是没有nothing 这个包导致的结果。如果你输入foobar,结果也一样。

如果你用的Composer版本足够新,那么你可以直接使用--lock选项:

2. 不编辑composer.json的情况下安装库

你可能会觉得每安装一个库都需要修改composer.json太麻烦,那么你可以直接使用require命令。

这个方法也可以用来快速地新开一个项目。init命令有--require选项,可以自动编写composer.json:(注意我们使用-n,这样就不用回答问题)

3. 派生很容易

初始化的时候,你试过create-project命令么?

这会自动克隆仓库,并检出指定的版本。克隆库的时候用这个命令很方便,不需要搜寻原始的URI了。

4. 考虑缓存,dist包优先

最近一年以来的Composer会自动存档你下载的dist包。默认设置下,dist包用于加了tag的版本,例如"symfony/symfony": "v2.1.4",或者是通配符或版本区间,"2.1.*"或">=2.2,<2.3-dev"(如果你使用stable作为你的minimum-stability)。

dist包也可以用于诸如dev-master之类的分支,Github允许你下载某个git引用的压缩包。为了强制使用压缩包,而不是克隆源代码,你可以使用install和update的--prefer-dist选项。

下面是一个例子(我使用了--profile选项来显示执行时间):

这里,twig/twig:1..2的压缩包被保存在~/.composer/cache/files/twig/twig/1..2.0-v1..2.zip。重新安装包时直接使用。

5. 若要修改,源代码优先

当你需要修改库的时候,克隆源代码就比下载包方便了。你可以使用--prefer-source来强制选择克隆源代码。

接下来你可以修改文件:

当你试图更新一个修改过的库的时候,Composer会提醒你,询问是否放弃修改:

为生产环境作准备

最后提醒一下,在部署代码到生产环境的时候,别忘了优化一下自动加载:

安装包的时候可以同样使用--optimize-autoloader。不加这一选项,你可能会发现%到%的性能损失。

如果你需要帮助,或者想要了解某个命令的细节,你可以阅读官方文档或者中文文档,也可以查看JoliCode做的这个交互式备忘单。

PHP 开发者该知道的 5 个 Composer 小技巧(php开发实战权威指南)

原文地址:5 features to know about Composer PHP 译文地址:PHP 开发者该知道的 5 个 Composer 小技巧

Composer 是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时代》。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。

1. 仅更新单个库

只想更新某个特定的库,不想更新它的所有依赖,很简单:

此外,这个技巧还可以用来解决“警告信息问题”。你一定见过这样的警告信息:

擦,哪里出问题了?别惊慌!如果你编辑了composer.json,你应该会看到这样的信息。比如,如果你增加或更新了细节信息,比如库的描述、作者、更多参数,甚至仅仅增加了一个空格,都会改变文件的md5sum。然后Composer就会警告你哈希值和composer.lock中记载的不同。

那么我们该怎么办呢?update命令可以更新lock文件,但是如果仅仅增加了一些描述,应该是不打算更新任何库。这种情况下,只需update nothing:

这样一来,Composer不会更新库,但是会更新composer.lock。注意nothing并不是update命令的关键字。只是没有nothing 这个包导致的结果。如果你输入foobar,结果也一样。

如果你用的Composer版本足够新,那么你可以直接使用--lock选项:

2. 不编辑composer.json的情况下安装库

你可能会觉得每安装一个库都需要修改composer.json太麻烦,那么你可以直接使用require命令。

这个方法也可以用来快速地新开一个项目。init命令有--require选项,可以自动编写composer.json:(注意我们使用-n,这样就不用回答问题)

3. 派生很容易

初始化的时候,你试过create-project命令么?

这会自动克隆仓库,并检出指定的版本。克隆库的时候用这个命令很方便,不需要搜寻原始的URI了。

4. 考虑缓存,dist包优先

最近一年以来的Composer会自动存档你下载的dist包。默认设置下,dist包用于加了tag的版本,例如"symfony/symfony": "v2.1.4",或者是通配符或版本区间,"2.1.*"或">=2.2,<2.3-dev"(如果你使用stable作为你的minimum-stability)。

dist包也可以用于诸如dev-master之类的分支,Github允许你下载某个git引用的压缩包。为了强制使用压缩包,而不是克隆源代码,你可以使用install和update的--prefer-dist选项。

下面是一个例子(我使用了--profile选项来显示执行时间):

这里,twig/twig:1..2的压缩包被保存在~/.composer/cache/files/twig/twig/1..2.0-v1..2.zip。重新安装包时直接使用。

5. 若要修改,源代码优先

当你需要修改库的时候,克隆源代码就比下载包方便了。你可以使用--prefer-source来强制选择克隆源代码。

接下来你可以修改文件:

当你试图更新一个修改过的库的时候,Composer会提醒你,询问是否放弃修改:

为生产环境作准备

最后提醒一下,在部署代码到生产环境的时候,别忘了优化一下自动加载:

安装包的时候可以同样使用--optimize-autoloader。不加这一选项,你可能会发现%到%的性能损失。

如果你需要帮助,或者想要了解某个命令的细节,你可以阅读官方文档或者中文文档,也可以查看JoliCode做的这个交互式备忘单。

原文地址:5 features to know about Composer PHP 译文地址:PHP 开发者该知道的 5 个 Composer 小技巧

PHP MYSQL实现登陆和模糊查询两大功能 本文使用的软件版本如下:PHP版本5.5.;MYSQL版本5.6.;Apache2.4.9用的wampserver一、PHPMYSQL实现登陆一共含有两个文件:login.php和logincheck.php;表单代码:form

PHP连接MSSQL方法汇总 为了能让PHP连接MSSQL,系统需要安装MSSQL,PHP,且在PHP.ini中的配置中,将;extension=php_mssql.dll前面的;去掉1.连接MSSQL$conn=mssql_connect("实例名或者服务器IP","用户名"

PHP共享内存用法实例分析 本文实例讲述了PHP共享内存用法。分享给大家供大家参考,具体如下:共享内存主要用于进程间通信php中的共享内存有两套扩展可以实现1、shmop编译时

标签: php开发实战权威指南

本文链接地址:https://www.jiuchutong.com/biancheng/290302.html 转载请保留说明!

上一篇:php session实现多级目录存放实现代码(php中session和cookie)

下一篇:PHP MYSQL实现登陆和模糊查询两大功能(php做登录界面连接数据库)

  • 个人所得税本期收入是扣完保险吗
  • 合同执行过程中应该怎么做
  • 无合同销售收入怎么算
  • 增值税即征即退怎么计算
  • 固定资产折旧四种方法适用范围
  • 塑料制品的商品编码是什么类发票
  • 两家公司原材料能否借用
  • 总公司汇总缴纳所得税升为一般纳税人分公司受影响吗
  • 利润表中财务费用是负数怎么算营业利润
  • 红字信息表已核销不允许撤销
  • 为职工提供免费午餐
  • 土地增值税什么时候开始征收的
  • 营改增之前
  • 未完工的工程款怎么支付
  • 扶持资金属于政府补助吗
  • 企业店铺开发票可以要求补税点吗?
  • 远程清卡失败怎么办
  • 航空公司票价怎么定的
  • 网页打不开是什么
  • 模具费用如何平摊到产品上
  • 如何调整往来账款
  • 华为鸿蒙harmonyos官网4.0升级
  • Win10 Build 19044.1288累积更新补丁KB5006670(附更新修复内容汇总)
  • 贷款利息不能抵扣进项税
  • PHP:stream_filter_remove()的用法_Stream函数
  • PHP:imageistruecolor()的用法_GD库图像处理函数
  • thinkphp 登录功能
  • mmdetection optimizer
  • thinkphp框架介绍
  • 联邦学习攻击与防御综述
  • php web socket
  • excel2016添加指定行数
  • php源码 数据库
  • 信息技术服务是什么公司
  • 织梦采集器图片本地化
  • 账务处理相关内容
  • 其他应收款是如何核算的
  • 本年度企业所得税怎么算
  • mysql skip ssl
  • mysql的服务器
  • 增值税报表申报流程
  • 用于企业职工福利有哪些
  • 受疫情影响较大的困难行业企业2020
  • 忘了作废的发票还能用吗
  • 社保的生育险按照什么比例报销
  • 委托加工合同如何签订
  • 预交了增值税款可以退吗
  • 年末本年利润没有结转影响报税吗
  • 购买农药化肥怎么入账
  • 申报表应纳税额和财务账金额不一致可以不改申报表吗
  • 会计借方和贷方有哪些科目
  • 劳务派遣人员能有营业执照吗
  • 工业企业无形资产有哪些
  • sql提取指定字符串
  • sqlserver 锁表语句
  • solaris syslog
  • win8系统笔记本怎么恢复出厂设置
  • linux 清理
  • centos怎么调出终端
  • virtualbox虚拟机旋转屏幕
  • win7禁用驱动签名后可以正常启动吗
  • linux系统文件在哪个目录
  • linux网络接口配置命令
  • NkbMonitor.exe - NkbMonitor是什么进程文件 有什么作用
  • win10 ie浏览器双击没有反应
  • win7如何查询电脑使用记录
  • 电子书进不去系统原因
  • win8系统多少位
  • javascript scrollTop正解使用方法
  • jquery中的siblings方法
  • csgo视角指令锁定枪械摇晃
  • javascript函数的定义
  • js做时钟让钟表转起来
  • python函数入门
  • 一个绿色
  • 小白学javascript
  • 黑龙江地方税务总局官网
  • 12366人工服务时间节假日上班吗
  • 税控盘怎么领用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设