Делаем Python из PHP

Вы когда-нибудь пытались перевести сайт на Python, но за неимением навыков у Вас не получалось? Тогда мой рассказ про инструмент преобразования PHP-файлов для Вас и я думаю, что он пригодится любому мало-мальски знающему программисту.

php2py - это php-скрипт для преобразования php в python. В качестве входных данных этот скрипт принимает XML-файл, созданный компилятором PHP под названием phc вместо php-кода. Для вебмастеров такое решение незаменимо, так как помогает создавать Python-файлы из уже готовых PHP и можно таким образом перегнать весь сайт.

Пример выполнения команд - это:

$ phc --dump-xml=ast somecode.php > out.xml
$ ./php2py.php out.xml > somecode.py

Вообще, инструмент доступен на Гитхабе свободно. Его придумал программер под ником taichino. Единственная трудность в том,что компилятор phc потерял домен, поэтому в свободном доступе его найти не так просто. Ну, для тех, кто использует поиск, может и просто.

Теперь затронем тему самого phc.

phc - это компилятор с открытым исходным кодом для PHP с поддержкой плагинов. Кроме того, его можно использовать для точной печати или обфускации PHP-кода в качестве платформы для разработки приложений, обрабатывающих скрипты PHP, или для преобразования PHP в XML и обратно, что позволяет обрабатывать PHP-скрипты с использованием инструментов XML.

Примечание: phc на некоторых платформах не поддерживается. Он компилирует некоторые программы и имеет расширенную инфраструктуру оптимизации. Однако он не предназначены для использования в производстве (особенно если нет поддержки объектов!). Он имеет отличную структуру преобразования программ, хотя, к сожалению, последний раз обновлялся для PHP 5.2 и не поддерживает более новые функции.

Печально но факт - такие разработки как phc чаще всего проходят мимо официальной аудитории.

Установка компилятора весьма проста и потребует только базовых инструментов разработчика. Может еще запросить Boost, но он лежит также в свободном доступе и найти его не составит труда.

Итак, ставим.

$ git clone https://github.com/pbiggar/phc.git
$ cd phc
$ touch src/generated/* Makefile.in configure Makefile libltdl/aclocal.m4 libltdl/Makefile.in libltdl/configure libltdl/Makefile
$ ./configure
$ make
$ make install

Для Debian-like систем может потребоваться установка дополнительных библиотек.