У меня есть собственная утилита PHP CLI, поэтому мне нужен PHP-компилятор. Я не нашел ничего работающего с последними версиями PHP, поэтому сейчас я использую Phalanger, но он требует, чтобы он был установлен на клиентском компьютере для запуска скомпилированных скриптов (!), И он компилирует файлы в .NET (!!). Это стоит того, что я когда-либо видел, но он работает и имеет консольную версию (потому что я использую Notepad ++ для разработки). Я не знаю, почему работает только стоящий костыль) Так что я все время продолжаю искать хороший консольный PHP-компилятор, но пока ничего не нашел. Все, что я нашел, очень старое. Там есть список и год последнего выпуска:
Есть HipHop, выпущенный FB, но использовать его так чудовищно, и он выглядит только как виртуальная машина, а не компилятор на самом деле, я думаю. Наконец, я решил написать свой собственный компилятор для работы с новыми версиями PHP и использовать нативный bcompiler для получения байт-кода, но узнаю, что bcompiler тоже мертв, его последний выпуск был в 2011 году! Итак, я могу спросить вас, почему все PHP-компиляторы мертвы? Нет проблем найти источники bcompiler, создать, например, новое расширение DLL для PHP для Windows, и добавить в него актуальную версию PHP DLL, но почему в те времена, когда был выпущен потрясающий PHP 7, его нет (нет! ) легкие и простые фактические компиляторы PHP?
Или я чего-то не понимаю? Если это так — что? Большое спасибо!
Это большой проект, который никогда не заканчивается, потому что php развивается и развивается (в отличие от языка, подобного C). Сопровождающие с открытым исходным кодом переходят к другим вещам, например, проводят время с семьей или устраиваются на работу.
Я думаю, что проекты умерли, потому что они вообще не работали для реальных проектов. В лучшем случае вы можете скомпилировать несколько скриптов, но большинство из них в какой-то момент потерпит неудачу с большим проектом. Для веб-разработки, которая, как я подозреваю, составляет 98% приложений, у вас есть встроенные скрипты и стили, которые просто не совместимы с компиляцией. Таким образом, вы должны писать код по-разному, чтобы использовать компилятор, который в некотором роде противоречит цели использования PHP в первую очередь.
Существует так много версий PHP, что компиляторы так далеко отстали, что стали бесполезными. Вы действительно должны придумать другой способ защитить свой продукт. Существует декодер для каждого коммерческого кодировщика, поэтому на самом деле нет способа защитить ваш код от того, кто хочет его получить. Я использую ioncube для кодирования своих сценариев, но это просто для того, чтобы клиенты не ломали вещи и потом жаловались, что это не работает.
Через некоторое время в поисках решения я написал свой собственный компилятор, который поддерживает PHP 7.1+ (!). Так что моя проблема решена. Спасибо всем!
Для компиляции очень простых (однофайловых) инструментов, есть PHPFlexer:
http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/PHPFlexer.shtml
(Он основан на phc-win, но проще в использовании)