当前位置: 首页 > 知识库问答 >
问题:

Symfony-Composer更新-需要用户较旧的依赖项(PHP 5.4到PHP 5.3)

华项明
2023-03-14

基本上我有一个问题-我们有一个基于PHP 5.4构建的Symfony网站,但我们的服务器运行PHP 5.3(是的-它很旧,有超过200个网站,所以我不想升级,以防它破坏旧网站!)

我们知道问题在于条令(速记数组语法)——可以手动更新文件并使用较旧的数组语法。

但我应该可以通过Composer来完成,但我不确定该使用哪个命令。

我知道可能会很简单。我想我应该先问一下,因为如果备份出错,我可能会节省恢复备份的时间!

更新:

尝试作曲家安装

问题1
-条令/orm v2.5.0需要php

已尝试composer安装--忽略平台要求

没有要安装或更新的内容

尝试作曲家更新

致命错误:允许的内存大小335544320字节耗尽(试图分配64字节)在phar://usr/本地/bin/作曲家/src/Composer/DependencyResolver/Rule.php行51

没想到会有这样的响应-可能是服务器配置问题。真遗憾,它看起来好像在做什么!

共有2个答案

黄查猛
2023-03-14

在大多数服务器环境中,应该可以一次安装多个PHP版本,并且仅对特定文件夹/站点使用特定版本(例如,通过htaccess激活)。因此,您的200个站点可以使用旧版本作为标准,而您的新站点可以使用新的PHP版本。我在我的一台服务器上也这样做了,这对我来说是一个很好的解决方案,我不必一次升级所有代码。

稍后,当所有站点都更新时(由于缺少较旧PHP版本的安全更新,您需要更新这些站点),您可以将较新版本设置为默认PHP版本,并忽略旧版本。

戚阳
2023-03-14

使用<代码>--忽略平台需求将无助于您,它将使情况变得更糟。正如我从您的问题中了解到的,在您的开发中有一个旧的5.4PHP,在您的生产机器上有一个更旧的5.3。

我看到的任务是如何使用开发PHP更新生产PHP的依赖关系。

幸运的是,如果作曲家当前运行的PHP,你可以告诉作曲家假设一个不同版本的PHP。

您可以为在特定计算机上执行的任何编写器调用全局配置它,也可以为单个项目配置它。您的决定取决于您对开发机器的期望,即您是否必须支持另一个具有不同需求的项目。

composer config-g platform.php 5.3.16将是全局配置,而本地配置将省略-g

全局配置的效果是Composer将创建或向文件~/.Composer/config.json中添加一个具有确切PHP版本号的节。请务必使用完全正确的版本!PHP5.3在其生命周期中有一些重要的错误修复,补丁级别很重要,因为以后的PHP版本不需要PHP代码中的某些解决方法。您应该避免在仍然损坏的版本上运行没有解决方法的软件。

在本地版本中运行该命令将把假定的PHP版本添加到projectscomposer.json文件中。

添加平台后,只需运行composer update,就会看到安装的软件包与给定的PHP5.3版本兼容。

在生产部署期间,您只需运行作曲家安装--no-dev,而无需任何额外的努力。

 类似资料:
  • 我有一个Laravel项目,我想使用我自己的fork(它合并了几个pull请求)。下面的作曲家。json按预期工作(它从我的repo获取主分支): 但是,当我添加一个依赖于Laravel提供的照明组件的软件包时(例如,,它需要与我的fork提供的版本相同),我最终会得到如下结果: > 安装gexge/laravel框架(4.0.x-dev 87556b2) 阅读/Composer/cache/fi

  • 我工作的地方使用Maven,我们有很多内部库。我们尝试以向后兼容的方式进行更改,但有时我们的一个库需要另一个库的较新版本。如果最终产品没有加入较新的库版本,这可能会导致问题。 由于我们有很多库,如果最终产品使用了库A、B和C,而A和B都使用了不同版本的C,那么并不总是使用最新版本的C。从介绍到依赖机制: 依赖项中介--这确定当遇到工件的多个版本时,将使用依赖项的哪个版本。目前,Maven2.0只支

  • 我正在升级我的laravel项目到5.6。当前版本是5.5.44。我的作曲家文件如下。当我运行作曲家更新时,它只是显示加载作曲家存储库与包信息在终端中更新依赖项(包括需要开发)几个小时。会是什么这个问题是什么?

  • 在Synfony 3.3中,DI的新最佳实践 是使用普通构造函数依赖项注入(或控制器中的“操作”注入),而不是通过$this获取公共服务- 如官方留档所见 因此,无需指定服务,因为我们可以在类控制器中键入提示: 这似乎工作得很好,但如果我扩展了一个类并在构造函数中添加了更多参数呢??? 现在我得到一个循环引用错误: [Symfony\Component\DependencyInjection\Ex

  • 我试图从Symfony 3.3升级一个项目。我得到了这个错误,当我运行作曲家更新,作曲家安装后删除composer.lock和作曲家要求。 PHP致命错误:第223行的phar://C:/Users/bbarhoum/Documents/ComposerSetup/bin/composer.phar/src/composer/dependencysolver/Solver.PHP中内存不足(分配了

  • 错误消息是: 编写器版本为d929a0813ae473272d151d9ebb2af7ebae451e48,安装了以下捆绑包: null 搜索错误消息主要返回包含错误消息的结果,但没有解决方案或指向正确方向的指针。。。 这可能是一个巧合,但这条信息在运行后开始显示 [编辑]我的