【问题标题】:Installing Symfony project with PHP 7.3 version使用 PHP 7.3 版本安装 Symfony 项目
【发布时间】:2019-01-03 16:49:07
【问题描述】:

尝试安装(并在更新作曲家之后):

composer create-project symfony-cmf/sandbox cmf-sandbox

我有这些错误:

Installing symfony-cmf/sandbox (2.0.0)
  - Installing symfony-cmf/sandbox (2.0.0): Loading from cache
Created project in cmf-sandbox
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for phpcr/phpcr-utils 1.3.0 -> satisfiable by phpcr/phpcr-utils[1.3.0].
    - phpcr/phpcr-utils 1.3.0 requires php ^5.6|7.0.x|7.1.x -> your PHP version (7.3.0) does not satisfy that requirement.
  Problem 2
    - phpcr/phpcr-utils 1.3.0 requires php ^5.6|7.0.x|7.1.x -> your PHP version (7.3.0) does not satisfy that requirement.
    - doctrine/phpcr-odm 1.4.2 requires phpcr/phpcr-utils ^1.2.8 -> satisfiable by phpcr/phpcr-utils[1.3.0].
    - Installation request for doctrine/phpcr-odm 1.4.2 -> satisfiable by doctrine/phpcr-odm[1.4.2].

编辑:继续 Timo 的推荐,我可以通过执行以下命令来安装项目:

composer create-project --ignore-platform-reqs symfony-cmf/sandbox cmf-sandbox

但是我得到了以下错误:

PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\ContextErrorException: Warning: count(): Parameter must be an array or an object that implements Countable in /srv/http/symfony/cmf-sandbox/vendor/symfony-cmf/routing/src/ChainRouter.php:101
Stack trace:
#0 /srv/http/symfony/cmf-sandbox/vendor/symfony-cmf/routing/src/ChainRouter.php(308): Symfony\Cmf\Component\Routing\ChainRouter->all()
#1 /srv/http/symfony/cmf-sandbox/var/cache/dev/appDevDebugProjectContainer.php(1670): Symfony\Cmf\Component\Routing\ChainRouter->setContext(Object(Symfony\Component\Routing\RequestContext))
#2 /srv/http/symfony/cmf-sandbox/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php(335): appDevDebugProjectContainer->getCmfRouting_RouterService()
#3 /srv/http/symfony/cmf-sandbox/var/cache/dev/appDevDebugProjectContainer.php(4955): Symfony\Component\DependencyInjection\Container->get('cmf_routing.rou...')
#4 /srv/http/symfony/cmf-sandbox/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php(33 in /srv/http/symfony/cmf-sandbox/vendor/symfony-cmf/routing/src/ChainRouter.php on line 101

该项目使用 Symfony 版本 3 结构,可能与 PHP 7.3 有一些不兼容(正如 Timo 所说)。

【问题讨论】:

  • 在packagist上查看包phpcr/phpcr-utils,版本1.3.0只支持php 5.6 - 7.1。版本 1.3.1 似乎支持 PHP 7.x,所以应该可以工作。
  • 还有问题吗?似乎没有进行大量的维护。我在 php 7.3 上的核心 Symfony 框架上遇到了一些麻烦。可能会尝试 php 7.2 甚至 7.1,看看会发生什么。只是猜测。
  • 谢谢马格努斯。我已经通过 composer require phpcr/phpcr-utils 安装了 phpcr-utils 1.4.0 但是当我尝试安装 cmf-sandbox 项目时我遇到了同样的问题:phpcr/phpcr-utils 1.3.0 requires php ^5.6|7.0.x| 7.1.x -> 您的 PHP 版本 (7.3.0) 不满足该要求。我在重启服务器后尝试,也在重启后尝试。
  • 感谢 Cerad 的贡献,但现在我有几个项目依赖于 7.3 版,并且为这个教学项目下载它并不能补偿我。
  • 很公平。 PHP 确实引入了一些重大更改(从技术上讲,它们是修复)。实际上,更新问题中的计数警告是在 php7.2 中引入的,并且破坏了很多东西。 cmf有一个聊天频道。那里可能会有更好的运气。

标签: php symfony


【解决方案1】:

您可以通过将--ignore-platform-reqs 添加到composer create-project 命令来告诉 Composer 忽略 PHP 版本要求。

否则,您可能必须等到 symfony-cmf/sandbox 的依赖项升级到更高版本。

编辑:如果最新版本的 Symfony CMF 沙盒还不能工作,你可以试试 master(最新的未发布的更改),看看它们是否已经在那里得到解决。您可以通过将--stability=dev 添加到您的composer create-project 命令并使用symfony-cmf/sandbox:dev-master 作为源来做到这一点: composer create-project --ignore-platform-reqs --stability=dev symfony-cmf/sandbox:dev-master cmf-sandbox

【讨论】:

  • 感谢 Timo,我已经成功安装了该项目,但是,它在完成安装和执行项目时都会引发一系列错误。我在我的问题的说明中进行了编辑。
  • 我已经用你可以尝试的下一个选项更新了答案:检查主分支而不是最新版本。
  • 再次感谢 Timo,现在我已经能够使用您的句子使用 PHP 7.3 安装它而不会出现问题。我必须修改 php.ini 的 open_basedir 才能启动。
  • 不客气。请注意,使用dev-master 可能不够稳定,无法用于生产。请留意 symfony-cmf/sandbox 上的发布,并在发布后切换回最新版本。
  • 好的,蒂莫,我会的
猜你喜欢
  • 1970-01-01
  • 2019-10-19
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
相关资源
最近更新 更多