PHP-приложения — это приложения, написанные на серверном скриптовом языке программирования, предназначенном для создания сайтов и веб-приложений.
Введение
Обычно язык PHP используется для web-разработок, однако необходимо заметить, что при этом PHP имеет обширный арсенал различных функций и инструментов, которые можно применять не только при создании сайтов. PHP-скрипты позволяют создавать полноценные приложения для Windows в форме стандартных и общеизвестных EXE-файлов. Для PHP4 в свое время были разработаны интересные программы, такие как Roadsend Compiler Studio и Bambalam PHP EXE Compiler, которые могли делать из скриптов консольные приложения. Существовали даже такие инструменты, как PHP-GTK и WinBlider, которые позволяли создать на PHP программы, имеющие графический оконный интерфейс. Сегодня, как ни печально, данные проекты уже не работают.
PHP-приложение
Следует учитывать, что язык PHP все-таки не предполагает наличие компиляции, и любое решение так или иначе представляет собой фрагменты интерпретатора PHP с требуемыми библиотеками и самих скриптов, которые, по сути, и считаются приложением. По этой причине размер готовых файлов даже в упакованном виде может получиться достаточно большим. Для того чтобы запустить PHP-скрипт на исполнение, необходимо использовать следующую команду:
php.exe -f скрипт.php
В этой команде заключена суть формирования исполняемых приложений на PHP. Самым простым способом создать подобие приложения на PHP является использование самораспаковывающихся архивов RAR.
Рассмотрим, например, вариант, когда PHP-приложение находится в единственном скрипте index.php. Необходимо сначала запустить архиватор, создать новый архив, добавить в него файл скрипта, а из папки, где установлен PHP, нужно взять два файла, а именно:
php.exe и php5ts.dll.
Когда в скрипте не применяются функции работы с сетью, графикой и тому подобное, то этого набора, как правило, хватает. В параметрах архива следует поставить галочку «Создать SFX-архив», как показано на рисунке ниже.
Рисунок 1. Окно программы. Автор24 — интернет-биржа студенческих работ
А на следующей вкладке следует открыть дополнительные параметры архива для их настройки:
Рисунок 2. Окно программы. Автор24 — интернет-биржа студенческих работ
В окне настроек следует проставить галочки в необходимых местах. При правильной настройке параметров все содержимое архива в автоматическом режиме будет извлечено во временную папку, уже существующие файлы будут перезаписаны, никаких сообщений и подтверждений при этом показано не будет.
В качестве последнего шага следует прописать, что после распаковки необходимо осуществить запуск интерпретатора PHP с заложенными скриптами. Для большей наглядности в настройках архива можно сделать выбор собственной иконки, которая будет присвоена создаваемому приложению. То есть, если изложить все кратко, то следует создать архив и запустить его на выполнение, а далее скрипт будет запущен и исполнен правильно.
Когда в скрипте применяются функции из расширений, то необходимо их также подключить. Для этого следует выполнить создание файла php.ini, например, следующим образом:
[PHP]
extension_dir = "."
extension=php_curl.dll
Его нужно упаковать совместно с расширениями в этот же архив. Следует отметить, что подобные комплекты наиболее удобно собрать в отдельной папке, где можно сразу проверить работоспособность скрипта, а также проверить присутствие всех зависимых библиотек и расширений. К примеру, показанное выше расширение php_curl может повлечь за собой еще и библиотеки libeay32.dll, libssh2.dll и ssleay32.dll, которые также необходимо не забыть включить в архив.
Невзирая на простоту формирования, подобные приложения имеют также ряд существенных недостатков. Прежде всего, нужно отметить, что любой пользователь имеет возможность открыть архив, познакомиться с его содержанием, и даже откорректировать его. Далее, SFX-архивы не способны обрабатывать в чистом виде параметры командной строки, нужно уметь пользоваться специфическими ключами типа -sp. По этой причине приложения на основе SFX-архивов, как правило, могут исполнять только какие-либо фиксированные действия, которые не предусматривают взаимодействия с пользователем.
Более удобным вариантом для создания приложений из PHP-скриптов является коммерческая утилита MoleBox. Она способна упаковать целое приложение в контейнер в формате единого exe-файла. Вместе с основным выполняемым файлом в контейнер следует поместить требуемые для его функционирования библиотеки и другие файлы. Несколько лет назад проект MoleBox был закрыт, однако утилита доступна к использованию.
Необходимо запустить программную оболочку MoleBox, добавить в корень проекта перечисленную выше совокупность файлов для запуска интерпретатора PHP и необходимые скрипты, а далее открыть настройки проекта, как показано на рисунке ниже.
Рисунок 3. Окно программы. Автор24 — интернет-биржа студенческих работ
В настройках проекта в качестве основного выполняемого файла следует выбрать php.exe, из него же извлечется иконка для итогового файла. В параметрах командной строки необходимо указать имя запускаемого скрипта и дополнительный ключ , означающий, что помимо имени скрипта нужно переслать на обработку параметры, которые переданы файлу приложения. Для работы с параметрами командной строки в PHP предусматриваются две предустановленные переменные. В целочисленной переменной $argc$ должно содержаться число передаваемых параметров, а в массиве $argv$ должны храниться сами параметры.
После завершения сборки проекта пользователь может получить единый исполняемый файл. Правда и в этом варианте присутствуют недостатки. Поскольку программа MoleBox является достаточно популярной у разработчиков вредоносного программного обеспечения, то некоторые антивирусные программы могут воспринимать подобные сборки, как достаточно подозрительные или даже вредоносные. В остальном же данный вариант является отличным способом формирования исполняемых приложений из PHP-скриптов.