Ошибка инициализации Yii2 на PHP7

У меня проблема, когда я пытаюсь переключить свой проект с среды dev на prod, проект представляет собой репозиторий git, который я отправляю на свой сервер, теперь мне нужно переключиться на производство, и я пытаюсь запуститьphp init на сервере, но все время получаю та же ошибка:

Parse error: syntax error, unexpected T_FUNCTION in /my/root/path/init on line 70

где /my/root/path/ — это базовый путь, по которому я отправляю код.

Кто-нибудь знает об этой ошибке?


person MarBer    schedule 17.11.2016    source источник
comment
Покажите код вокруг строки 70   -  person Bizley    schedule 17.11.2016
comment
Извините, это код: array_walk($skipFiles, function(&$value) use($env, $root) { $value = "$root/$value"; }); как я видел, соответствует документации PHP   -  person MarBer    schedule 17.11.2016
comment
Какая версия PHP на целевом сервере?   -  person Bizley    schedule 17.11.2016
comment
Версия PHP 7.0   -  person MarBer    schedule 17.11.2016


Ответы (1)


Основываясь на моем предыдущем ответе и комментарии:

Пытаться

array_walk($skipFiles, function(&$value, $key, $data) {
    $value = $data[1] . '/' . $value;
}, [$env, $root]);

@Marber: возвращает ту же ошибку, похожее решение — function resolveBug($value) { $value = "$root/$value"; } array_walk($skipFiles, resolveBug($value));, и это устраняет ошибку, но процедура генерирует другую ошибку в строке 81: Parse error: syntax error, unexpected '['... and the code is $callbacks = ['setCookieValidationKey', 'setWritable', 'setExecutable', 'createSymlink'];

Я предполагаю, что на стороне CGI есть PHP 7, а CLI - это PHP ‹ 5.3, и поэтому консольные команды не работают.

Проверьте версию PHP вашей консоли, запустив

php -v

в консоли.

person Bizley    schedule 17.11.2016
comment
Возвращает ту же ошибку, аналогичное решение function resolveBug($value) { $value = "$root/$value"; } array_walk($skipFiles, resolveBug($value)); и это устраняет ошибку, но процедура генерирует другую ошибку в строке 81: Parse error: syntax error, unexpected '['... и код $callbacks = ['setCookieValidationKey', 'setWritable', 'setExecutable', 'createSymlink']; - person MarBer; 17.11.2016
comment
Спасибо за ответ, теперь я знаю проблему, я создал на сервере приложение с CGI PHP 7.0, но когда я запускаю php init, я думаю, что выполнение обрабатывается php 5.2.17, версия, возвращенная php -v. Спасибо за поддержку! - person MarBer; 17.11.2016