Pull to refresh

Как забыть об используемой версии PHP

Reading time1 min
Views524
В дополнение к предыдущему посту.

Многим из нас (особенно фрилансерам) приходится иметь дело с несколькими проектами, которые могут располагаться на разных серверах с разными версиями PHP. В этом случае может возникать проблема с отсутствием привычных функций или их неверной работой.

Пример.
Буквально только что мне потребовалось немного автоматизировать работу контент-менеджера одного из подшефных сайтов. Достаточно бысто был найден нужный класс (пост через XML-RPC), добавлена необходимая функциональность. Проверка (локальная) показала, что все работает отлично. Но после установки на сервере выяснилось, что класс был написан для PHP5 (на сервере — одна из ветки 4.4). После беглого просмотра выяснилось, что проблема в единственной функции — file_get_contents, в которую была добавлена возможность получить файл методом POST, например.


В таких случаях может помочь пакет PHP_Compat, основная задача которого — обеспечить совместимость с более новыми версиями PHP.

В случае из примера выше, я просто достал из пакета нужную функцию, вставил ее в код и все заработало. 30 секунд вместо переписывания чудого кода и отладки получившегося.


Использовать — проще простого. Можно просто взять нужную функцию. Можно использовать вызовы типа:
require_once 'PHP/Compat.php';
PHP_Compat::loadFunction('file_get_contents');


или

require_once 'PHP/Compat/Function/file_put_contents.php';
Tags:
Hubs:
Total votes 11: ↑9 and ↓2+7
Comments15

Articles