php 强制版本更新,强制编写器在版本X和版本Y之间需要PHP版本

我们在您的服务器(最大5.3.5)和开发机器(最大5.5.9)上运行不同的PHP版本.

现在我们遇到了一个问题,我们做了一个“作曲家更新”,以获得一些外部Bundles的最新版本.

因为你的composer.json看起来像

"require": {

"php": ">=5.3.3",

.....

},

我们得到一些需要PHP 5.5的Bundles.在我们的开发机器上没有问题,但在服务器上:(

是否有可能告诉作曲家要求5.3.3和5.3.5之间的PHP版本?或者最大可用版本?

我试过了

"require": {

"php": ">=5.3.3, <=5.3.5",

.....

},

"require": {

"php": "<=5.3.5",

.....

},

但两者都没有成功.我得到一个“在任何版本中都找不到请求的包php,包名中可能有拼写错误.”错误.

有任何想法吗?提前致谢

解决方法:

我发现至少可以说你使用最新的PHP开发并且正在使用非常过时的版本运行生产.由此会产生很多可能出现的问题,不仅仅是因为你会丢失安全补丁,更重要的是因为PHP bug修复主要在版本5.3.9和5.3.23中引入,这些修补程序改变了某些部分的PHP行为从根本上讲细节.不是在谈论意外使用5.4或5.5功能的风险.

而且真的没有办法让Composer处理这种情况.运行composer update时使用的PHP版本决定了依赖项的解析,受PHP版本和已安装的PHP扩展的影响.

如果用于更新的PHP与此版本要求不匹配,则无法定义包仅应用于5.3.3和5.3.5之间的PHP版本.因为使用的PHP版本超出了上限版本,所以这样的包不符合完成版本要求的条件,并且Composer报告没有找到包(没有告诉它已经看到包,但是由于它们必须被忽略)版本约束).

可能有三种明显的方法:

>将您的开发环境降级到您实际使用的生产版本.如果使用多个:最老的一个.这样就可以匹配PHP版本的任何要求.然后运行composer update,你就完成了.

>升级您的生产环境.不需要进一步解释,但我不得不提到,你不仅缺少很多非常好的PHP功能,而且还缺少大幅度的性能提升,因为PHP 5.5实际上比5.3快得多.

>将“platform.php”配置添加到全局或项目的composer.json.这将告诉Composer覆盖运行Composer本身的PHP版本,而是使用不同的PHP版本计算依赖关系. composer config -g platform.php 5.3.5用于全局设置(将影响所有进一步的Composer运行),不使用-g进行本地设置(如果您使用不同的生产在多个项目上开发,将仅影响该项目中的Composer操作) PHP的版本).

标签:php,composer-php

来源: https://codeday.me/bug/20191003/1851305.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值