2016-02-26 6 views
1

проекта Symfony Когда я пытаюсь очистить кэш моего Symfony2.8 проекта, я получаю следующее сообщение об ошибке:Синтаксическая ошибка при попытке очистить кэш

[Symfony\Component\Debug\Exception\FatalErrorException] Parse Error: syntax error, unexpected '['

Вот еще deParse ошибка:

syntax error, unexpected '[' in /home/jack/html/fc/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 90

Я обновил свой Symfony2.7 до 2.8 вчера, и теперь я занят исправлением ошибок, чтобы подготовить его к версии 3. Я только что об очищении кеша время от времени, но я только что получил эту ошибку.

Я использовал эту команду:

php app/console cache:clear

+0

В какой версии PHP вы работаете? – hasumedic

+0

@hasumedic Я бегу версию 5.6 –

+0

Извините, я думал, что это может быть связано с [этими изменениями] (https://github.com/doctrine/common/commit/71b41aca3f4a2ab881a5bfba635e1babb17313e8) и вашей версией PHP. – hasumedic

ответ

2

Существует всего проблема идет от версии PHP, используемой CLI при выполнении команды.

Ошибка возникает из-за использования [] в качестве объявления массива.
Этот короткий синтаксис был введен, когда 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, вы должны быть в состоянии сделать запустить следующий из вашего Баша:

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

Если вы не получаете никакой ошибки, есть что-то в вашем проекте, который конфликтует с вашей реальной версии PHP, отключив некоторые функции.

В противном случае, у вас есть два варианта:

  • Понизить Doctrine
  • Обновление PHP

Я надеюсь, что это прояснить реальную проблему.

Смежные вопросы