Иногда мне приходится иметь дело со старыми серверами клиентов, на которых установлен только PHP 5.2. У них там старые проекты, и модернизация — это проблема. Но иногда я хочу использовать библиотеку с пространствами имен или новыми литералами массива.
Есть ли инструмент для переноса кода для запуска на старом сервере? Так же, как babel.js для JavaScript.
Перед транспортировкой:
$russian_words = ["Matrioshka", "Balalaika", "Kalashnikov"];
После:
$russian_words = array("Matrioshka", "Balalaika", "Kalashnikov");
А также для некоторых серверов с различной конфигурацией:
<?="And the answer is: $mystery"; ?>
Для того, чтобы:
<?php echo "And the answer is:" . $mystery; ?>
Я был бы удивлен, если бы был транспортер. Что вы могли бы сделать, это использовать систему сборки, такую как gulp или grunt, для отслеживания изменений в файлах PHP и выполнения пользовательских действий поиска / замены, но это может привести к некоторым странным ошибкам.
Проблема в том, что в PHP 5.3 внесены довольно большие изменения, и некоторые вещи, которые вы можете сделать после публикации 5.3, просто не имеют эквивалента в < 5.3.
Реальный ответ — реализовать хорошие тесты и, к сожалению, не использовать сторонние компоненты, которые несовместимы (пока вы не сможете убедить клиента в том, что ему НЕОБХОДИМО пройти как минимум 5,3).
Других решений пока нет …