Здравствуйте.
Загружаю проекта Drupal 8 с помощью Composer на 2 виртуальных хостинга.
Дано:
Хостинг 1:
Composer version 1.6.2 2018-01-05 15:28:41
Drush Commandline Tool 9.4.0
Хостинг 2:
Composer version 1.7.2 2018-08-16 16:57:12
Drush Commandline Tool 9.4.0
На хостинг 1 проект прекрасно загрузился. Команда drush status в папке проекта вывела информацию.
На хостинг 2 проект также загрузился. Но любая команда drush выводит ошибку:
<?php
PHP Parse error: syntax error, unexpected T_FUNCTION, expecting T_STRING or T_NS_SEPARATOR in /www/mysite/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php on line 5
?>
Покопавшись в интернете, нашла что это как-то связано с версией PHP.
На хостинге 1: PHP 7.2.10 (cli).
На хостинге 2: PHP 7.2.3 (cli).
Сами файлы абсолютно одинаковы.
<?php
namespace DeepCopy;
use function
function_exists;
if (
false === function_exists('DeepCopy\deep_copy')) {
/**
* Deep copies the given value.
*
* @param mixed $value
* @param bool $useCloneMethod
*
* @return mixed
*/
function deep_copy($value, $useCloneMethod = false)
{
return (new DeepCopy($useCloneMethod))->copy($value);
}
}?>
Я заменила содержимое , скопировав из "правильного" файла, но ошибка осталась.
В чём может быть ошибка? Может влиять версия Composer или PHP?
Комментарии
Включите поддержку короткого синтаксиса тегов PHP, или лучше - не используйте сокращенный синтаксис.
Не сильна в php. Но хочу заметить, что это файл из папки vendor, которую установил Composer. Я его не создавала.
Или ваш комментарий относится не к файлу?
Настройки хостинга могут включать в себя эту поддержку? На другом хостинге проблем с этим или каким-либо другим файлом, не было.
На самом деле, я только предположил что дело шорт-синтаксисе.
Настройки хостинга - да, могут зависеть. Точнее - настройки PHP хостинга. Посмотрите, если хостер предоставляет доступ к параметрам PHP - попробуйте включить.
Техподдержка хостинга всё исправила. Я накосячила в алиасе drush. Одну папку пропустила. PHP здесь оказался не при чём.