Можно ли запустить Symfony 1.4 под PHP7?Можно ли запустить Symfony 1.4 под PHP7?
Если да, то какие изменения должны быть выполнены?
Можно ли запустить Symfony 1.4 под PHP7?Можно ли запустить Symfony 1.4 под PHP7?
Если да, то какие изменения должны быть выполнены?
Заканчивать этот вопрос, который связан с вашей проблемой: Symfony 1.4 using deprecated functions in php 5.5
В зависимости от вашей базы кода я думаю, что лучшим вариантом является обновление до Symfony 2 или 3. Или вы могли бы использовать этот проект, который поддерживает 5.6 (возможно, 7 в будущем?): https://github.com/LExpress/symfony1
Они добавили поддержку PHP 7 –
@MichaelNoyb Можете ли вы предоставить ссылку? – yeouuu
Просто посетите репо в https: // github.ком/Lexpress/symfony1 «Все усовершенствования и BC брейки перечислены в WHATS_NEW файла, это включает в себя: DIC поддержка Composer PHP поддержка +7,0 повышение производительности » Я включил мой уже сильно настроенный 1,4 вилки 1.5.8 (бег PHP 5.5), и до сих пор он хорошо работает с минимальными изменениями в существующем коде. Скоро будет обновление до 7.0, чтобы узнать, всплывают ли какие-либо проблемы –
Для тех, кто хочет использовать доктрину 1.2 с symfony 1.4 и PHP7!
В% SF_LIB_DIR%/поставщика/Symfony/Библиотека/плагины/sfDoctrinePlugin/Библиотека/поставщика/доктрина/Доктрина/Collection.php линия 463 Вы найдете:
$record->$relation['alias'] = $this->reference;
В PHP 5 это было истолковано как
$record->${relation['alias']} = $this->reference;
Что предназначил автор. В PHP7 это будет интерпретироваться как
${record->$relation}['alias'] = $this->reference;
Что приводит к ошибке относительно отношений.
Чтобы устранить эту проблему, просто сделать неявное явным:
$record->${relation['alias']} = $this->reference;
и эта проблема исчезла.
Кроме того, вы должны изменить в следующих Doctrine файлы: Doctrine/адаптер/Oracle.php линии 586 от
$query = preg_replace("/(\?)/e", '":oci_b_var_". $bind_index++' , $query);
в
$query = preg_replace_callback("/(\?)/", function() use (&$bind_index) { return ":oci_b_var_".$bind_index++; }, $query);
Doctrine/Связь/Mssql.php линии 264 от
$tokens[$i] = trim(preg_replace('/##(\d+)##/e', "\$chunks[\\1]", $tokens[$i]));
в
$tokens[$i] = trim(preg_replace_callback('/##(\d+)##/',function ($m) use($chunks) { return $chunks[(int) $m[1]]; }, $tokens[$i]));
и линии 415 от
$query = preg_replace('/##(\d+)##/e', $replacement, $query);
к
$query = preg_replace_callback('/##(\d+)##/', function($m) use ($value) { return is_null($value) ? 'NULL' : $this->quote($params[(int) $m[1]]); }, $query);
для PHP7 не имеет PREG модификатор 'е' больше. С этими изменениями доктрина 1.2 будет продолжать работать с PHP7 и работать с PHP5 тоже!
Почему бы вам не обратиться непосредственно к разработчикам Symphony? https://symfony.com/community –