尝试清除Symfony项目缓存时出现语法错误

时间:2016-02-26 14:57:32

标签: php symfony caching

当我尝试清除Symfony2.8项目的缓存时,出现以下错误:

  

[Symfony \ Component \ Debug \ Exception \ FatalErrorException] Parse   错误:语法错误,意外' ['

这是更多deParse错误:

  

语法错误,意外' ['在   /home/jack/html/fc/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php   在第90行

我昨天将Symfony2.7升级到2.8,现在我正在忙着修复弃用以使其为版本3做好准备。我只是偶尔清除缓存,但我得到了这个错误。

我使用了这个命令:

php app/console cache:clear

1 个答案:

答案 0 :(得分:2)

运行命令时,CLI使用的PHP版本可能存在问题。

错误来自使用[]作为数组声明 PHP发布5.4 version时已经引入了这个简短的语法。

在Symfony 2.7全新安装中,导致您的错误的行如下所示:

/**
 * @var \Doctrine\Common\Proxy\ProxyDefinition[]
 */
private $definitions = array();

在Symfony 2.8中:

/**
 * @var \Doctrine\Common\Proxy\ProxyDefinition[]
 */
private $definitions = [];

错误也不能来自其他地方。

如果您的CLI版本确实是5.6,那么您应该可以从bash中运行以下命令:

php -r '$array = []; var_dump($array);'
// output: array(0) {}

如果您没有收到任何错误,项目中的某些内容会因禁用某些功能而与您的真实PHP版本冲突。

否则,您有两种选择:

  • 降级学说
  • 升级PHP

我希望这能澄清真正的问题。