当我尝试清除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
运行命令时 CLI 使用的 PHP 版本可能存在问题。
该错误来自使用 []
作为数组声明。
这个简短的语法是在 PHP 发布其 5.4 版本时引入的。
在 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
我希望这能澄清真正的问题。