当我尝试清除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
答案 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版本冲突。
否则,您有两种选择:
我希望这能澄清真正的问题。