Для некоторых разработчиков одним из больших недостатков PHP является то, что он не предоставляет официального метода для распространения бинарных веб-приложений с закрытым исходным кодом. Разработчики коммерческих приложений часто хотят сохранить свой исходный код закрытым по разным причинам.
Есть, однако, некоторые сторонние решения. От людей, которые привели вас к интерпретатору PHP, приходит Zend Encoder . Этот кодер преобразует ваш PHP в двоичную форму, которую Zend называет «Zend Intermediate Code». Основным недостатком Zend Encoder для мелких разработчиков является его цена, которая в настоящее время составляет 2400 долларов США. Двоичные файлы, созданные с помощью Zend Encoder, можно запускать с помощью бесплатного Zend Optimizer , который устанавливается на многие учетные записи хостинга LAMP, что делает двоичные файлы, созданные с помощью Zend Encoder, несколько переносимыми.
Конкурентом Zend Encoder является PHP Encoder от ionCube. Стоимость PHP Encoder начинается с 199 долларов, что делает его более доступным. Чтобы использовать двоичные файлы, сгенерированные PHP Encoder, вам необходимо установить на сервере их PHP Accelerator , который не так распространен, как Zend Optimizer. Поэтому, вероятно, будет менее портативным.
Также доступен Turck MMCache . Последние версии MMCache включают кодировщик и загрузчик для PHP, что позволяет распространять скрипты PHP в промежуточной двоичной форме. Цена правильная — MMCache бесплатный и с открытым исходным кодом. Он также может быть более привлекательным для хостинговых компаний, поскольку его можно установить одновременно с Zend Optimizer.
Существуют альтернативные продукты, которые не распространяют скомпилированную версию приложения, и, следовательно, может не требовать установленного на сервере интерпретатора. Однако такие продукты, как правило, используют либо обфускацию кода, либо шифрование исходного кода. Проблема с обоими из них заключается в том, что к исходному коду может обратиться кто-нибудь, имеющий навыки программирования, даже если это может быть сложно.
Обфускация кода изменяет имена функций и переменных на странные, похожие на мусор имена и удаляет все ваше форматирование. Это очень затрудняет понимание кода, хотя, если кто-то действительно хочет позаимствовать его или изменить, он может это сделать.
Проблема с шифрованием исходного кода заключается в том, что вам также потребуется предоставить средство расшифровки источника вместе с ключом для этого. Это дает пользователям все, что им нужно для расшифровки вашего источника. Пользователю потребуется либо установить двоичный исполняемый файл (например, расширение PHP), либо сценарий PHP для расшифровки файлов, и пользователь может выполнить обратный инжиниринг этого для получения исходного кода. Процесс расшифровки также снижает производительность.
Некоторые могут утверждать, что распространение приложений PHP в виде «закрытого источника» в двоичной форме — это плохо, так как это наносит ущерб сообществу открытого исходного кода, из которого происходит сам PHP. Тем не менее, сами PHP Group рады, что PHP будет использоваться в коммерческих целях — лицензия PHP очень разрешительна, чтобы «помочь PHP стать настолько популярным, насколько это возможно». Я бы сказал, что если возможность распространять свои приложения в двоичном виде позволяет большему количеству разработчиков переключаться на PHP, это хорошая вещь для PHP.