位置: 编程技术 - 正文

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做登录界面连接数据库)

  • 如何进行个人所得税认定
  • 企业收到退回的所得税的账务处理
  • 个税申报可以去税务局吗
  • 个人所得税减免 租房没有合同编号
  • 4s店代办保险回扣
  • 人员处于银行代扣报盘期间什么意思
  • 注册资本金实缴和认缴区别
  • 工会经费计税依据是应发还是实发
  • 网银年费怎么做会计分录的
  • 房地产公司资本公积
  • 清洗汽车的目的
  • 法定盈余公积金的提取比例一般按照()
  • 出售库存的原材料表格
  • 预付卡没用完的可以退吗
  • 购电子承兑汇票差额计入什么科目?
  • 分配利润和分配股利
  • 固定资产原值增加后如何计提折旧
  • 个人所得税企事业单位承包经营所得
  • 进出口商品应该符合哪个国家的标准
  • 工程收入怎么算
  • 小规模减半征收什么时候开始
  • 企业停产没有收入,费用可以计入长期待摊费用吗
  • 耕地建厂房补偿方法
  • 资产负债表总计数表示什么意思
  • 财产转让所得怎么申报个税
  • 结转材料采购成本的会计分录是什么
  • win10为什么毛病这么多
  • 新版mac如何连接iphone
  • 辅导期一般纳税人可以抵扣进项吗
  • 电脑输入法设置搜狗输入法
  • php如何重启
  • 政府性基金收入怎么收
  • 应收账款债权融资计划业务操作指引
  • php rediscluster
  • 混合销售行为的税务处理
  • gps定位器怎么开启
  • git代码提交规范
  • Linux下socket实现网页抓取 Unicorn 博客频道 CSDN.NET
  • java操作mongodb数据库
  • 委托收款的含义
  • 营业外支出的计算公式
  • sql server的go
  • spark sql add jar
  • 简易计税差额抵扣
  • 打印银行电子回单有断号
  • 以红字冲回
  • 增值税期末留抵退税原因采集确认单
  • 工会经费的会计分录2022
  • 房地产企业土地增值税预缴
  • 限制性股票应纳税额的确定
  • 已提过5个月折旧要进行固定资产一次性扣除吗?
  • 损益类科目没有结平是什么意思
  • 临时账户名称是什么意思
  • 客户退货,但不退货
  • 固定资产卡片项目的数据类型包括
  • 工程施工人工费如何结转
  • 公司买茶具帐务处理流程
  • 建筑企业案例
  • 商品库存明细账
  • mysql语句性能优化
  • sql数据库检查
  • xp系统卡到开机画面
  • 在windows上装ubuntu
  • 让你的时间更有价值
  • Win10预览版镜像
  • sudo service: command not found 报错的解决方法
  • win7旗舰版如何升级到win10
  • win8文件夹选项在哪
  • 游戏开发之二维码怎么弄
  • python3循环语句
  • nodejs文件操作
  • android内核剖析代码
  • linux修改磁盘格式指令
  • javascript的dom
  • pdb settrace
  • 你家预收租金到哪里去了
  • 国家税务总局纳税服务司罗名
  • 卷烟批发环节的税率
  • 广西税务12366如何交社保
  • 深圳为何
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设