Смешивание PHP4 и PHP5 в одном приложении

Я поддерживаю для кого-то код старого приложения PHP4. Поскольку некоторые новые функции могут эффективно использовать структуру ZEND, мне интересно, смогу ли я смешать PHP4 и PHP5 в одном приложении.

Чтобы быть более конкретным, я хотел бы вызвать код PHP5 из кода PHP4.

Простым решением будет новый каталог XXX, в котором хранятся новые материалы PHP5. Затем вызовите из классов PHP4 код PHP5, используя подзапросы HTTP. Поскольку рассматриваемые функции являются редко используемыми административными функциями, этот подход не должен снижать общую производительность.

В качестве альтернативы мне интересно, могу ли я включать файлы из мира PHP5 напрямую из скриптов PHP4.

Скорее всего, это невозможно, так как веб-сервер запускает PHP4 и PHP5 в разных процессах/адресных пространствах.

В случае, если я что-то пропустил, может ли кто-нибудь подтвердить? Или указать в другом направлении?


person SteAp    schedule 17.04.2011    source источник
comment
Большинство PHP4 по-прежнему работает на PHP5. Просто попробуйте полностью переключиться на PHP5 и посмотрите, что получится. Вам, вероятно, придется избавиться от некоторых предупреждений/уведомлений, но это должно работать нормально.   -  person halfdan    schedule 17.04.2011
comment
Интернет-провайдер предоставляет PHP4 и PHP5. Переход на PHP5 приводит к ошибкам. Но кому-то нужно оплатить счет, исправить ошибки и завершить миграцию ;-)   -  person SteAp    schedule 17.04.2011


Ответы (1)


Единственный способ сделать это — включить удаленные оболочки fopen() и вызвать код PHP5 по URL-адресу. Это кажется действительно плохой идеей.

person Winfield Trail    schedule 17.04.2011
comment
Предоставленный! Это плохая идея! Весь проект должен быть перенесен. Я уже объяснил 'кому-то', что она должна делать... - person SteAp; 17.04.2011
comment
Я чувствую твою боль, Стефан. Надеюсь, вам удастся объяснить это своему боссу. - person Winfield Trail; 18.04.2011
comment
Спасибо! Я реализовал класс, который перехватывает вызов своих методов в слове PHP4, оборачивает их в POST-запрос и, наконец, передает их в мир PHP5, который отправляет их нужному целевому классу. Было не так уж и сложно, но... - person SteAp; 21.04.2011