Создание Exe-Приложений На Php

ВСТУПЛЕНИЕ Мы все знаем, что PHP предназначен для быстрого создания динамических веб-страниц.

Во всяком случае, именно так написано на официальном сайте разработчиков PHP. Однако почему бы не попробовать найти PHP «немного» другое применение, например, попытаться создать полноценное приложение для Windows? Заинтересованы? Тогда поехали! Черный квадрат Приложения делятся на консольные и оконные.

Начнем с создания первых, так как это проще.

Итак, сначала нам нужно определиться, что мы будем писать.

Предлагаю написать простой MD5 & Base64 Encoder - нужная и полезная вещь в хозяйстве, тем более, что здесь все достаточно просто.

Чтобы запустить PHP-скрипт из командной строки и передать ему необходимые параметры, используйте следующую конструкцию:

php.exe [опции] [-f] [параметры]
Что касается содержимого самого скрипта, то количество переданных параметров хранится в переменной $argc, а сами параметры хранятся в массиве $argv. На этом краткое руководство по консольным приложениям завершено, и пора приступать к действиям.

Чтобы не утомлять вас написанием сценария, я решил написать его за вас.

Это то, что у меня есть случилось:

habrastorage.org/getpro/habr/olpictures/cf6/1d1/61b/cf61d161b4a795fc4c658d661d96fdae.gif "width=450 height=186 border=0 alt=Демонстрация скрипта" hspace=10 vspace=10> Скрипт написан, и теперь самое интересное — скомпилировать его в EXE-приложение.

Я использую Roadsend Compiler Studio для компиляции консольных приложений.

Его можно скачать с сайта www.roadsend.com после бесплатной регистрации.

Вы скачали его? Теперь открываем Roadsend IDE, создаем новый проект (Project -> New), указываем необходимые параметры (рекомендую закинуть наш скрипт в директорию проекта), нажимаем «ОК» и наконец-то даем заветный Project -> Build. Теперь заходим в папку с проектом и если вы все сделали правильно, то найдете в ней готовый EXE. Это все? Да.

Все просто, если знать некоторые нюансы.

Единственное, что я бы порекомендовал, так это то, что иногда полезно поиграться с подключаемыми библиотеками, а еще можно упаковать наш EXE-файл с помощью UPX, хотя этой темы я затрону чуть ниже.

Теперь перейдем к оконным приложениям.

Окна Как вы, наверное, уже догадались, при создании оконных приложений стандартных инструментов PHP уже недостаточно, поэтому сначала нужно выбрать инструмент для разработки нашего окна.

Среди всех инструментов наиболее выделяются два — достаточно популярный PHP-GTK (www.gtk.php.net) и менее популярный, но не менее функциональный WinBlider (www.winbinder.org).

Это как раз тот случай, когда более популярный и известный оказывается не таким уж хорошим (это мое мнение), поэтому для разработки нашего первого окна на PHP мы будем использовать WinBlinder. Сначала вам нужно его скачать.

Готовый? Хорошо, идем дальше.

У Winblinder есть собственный формат данных — phpw, который вы можете сразу же безопасно связать с любимым редактором кода.

По умолчанию, когда вы запускаете phpw-файл, содержащийся в нем PHP-скрипт открывается и запускается через интерпретатор с уже подключенными слепыми библиотеками.

Как вы, наверное, понимаете, учиться программировать на этой балалайке придется самостоятельно, но ничего сложного в этом нет, особенно для человека, хоть немного знакомого с ООП на PHP. Однако кодировать на нем сможет даже новичок, поскольку по сути Blinder (в отличие от PHP-GTK) поддерживает еще и процедурное программирование.

Кроме того, WinBlinder очень хорошо документирован, а установочный архив уже содержит несколько очень интересных примеров (обратите особое внимание на редактор форм).

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

Сейчас, пожалуй, лучшее время вспомнить о нашем кодировщике.

Чтобы не перегружать все кодом, я решил написать только MD5 Encoder:

Код довольно простой и думаю, потратив 1-2 часа на документацию, вы начнете его понимать так же, как и я.

Ну а теперь кульминация — собираем окно.

Для этого предлагаю создать отдельный каталог и переместить туда наш скрипт. Вам также необходимо переместить туда папку include из каталога phpcode Winblinder. Готовый? Теперь давайте скомпилируем! Ээээ.

подождите, не нужно брать Roadsend IDE. Как? А вот так! Он не поддерживает блайндер, а поддерживает только GTK, и судя по туманным ответам разработчиков Roadsend на их форуме, поддержку блайндера можно ожидать еще долго.

Однако давайте утрём нос и поищем другие пути, и имя этим путям — Bamcompile (www.bambalam.se/bamcompile/).

Однако почему-то версия 1.21 не всегда работает корректно и иногда компилирует всё в ломаное приложение, а вот версия 1.1 такими глюками не страдает, поэтому рекомендую использовать её.

Теперь щедро выделяем для нашего компилятора отдельную папку, заходим в командную строку и гордо командуем:

bambalam -w -c C:\PHP_Projects\MD5_Hash_Generator\ md5.phpw md5.exe


Создание EXE-приложений на PHP

Если все сделано правильно, то в каталоге с компилятором будет свежесобранное оконное приложение.

Все.

Добавлю лишь, что я бы также рекомендовал упаковывать все приложения с помощью UPX (который поставляется непосредственно с Bamcompile).



Создание EXE-приложений на PHP

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

Что же делать тогда? Специально для этого случая есть один очень интересный способ получения EXE-файла путем шаманства в SFX-опциях архива WinRAR. В качестве примера я буду использовать наш первый консольный скрипт. Сначала помещаем наш скрипт в отдельную папку и копируем туда php.exe и php*ts.dll. Далее создайте в этой же папке run.bat следующего содержания:

@эхо выключено php.exe -q console.php %1 %2
Теперь нам необходимо упаковать это добро, для этого выделите все файлы, щелкните правой кнопкой мыши и выберите «Добавить в архив.

».



Создание EXE-приложений на PHP

В появившемся окне выберите формат архива RAR, установите максимальное сжатие и установите флажок «Создать SFX-архив».



Создание EXE-приложений на PHP

После этого переходим в вкладку «Дополнительно -> Параметры SFX», там ставим переключатель на «Создать в текущей папке» и в «Запускать после извлечения» пишем «run.bat», а также во вкладке «Режимы» ставим галочку «Распаковать во временную папку», а также ставим переключатели «Скрыть все» и «Перезаписать все файлы».



Создание EXE-приложений на PHP

Если хотите, можете приклеить свою иконку в соответствующую вкладку.

Теперь подтверждаем создание архива и на выходе получается EXE без всяких компиляторов.

ЗАВЕРШЕНИЕ Итак, сегодня я показал вам, как легко расширить границы использования PHP. Конечно, кто-то назовет все это ерундой, скажет, что размер приложений большой, а памяти не хватает, и все это муторно.

Пусть говорят, но никто не призывает вас писать все оконные приложения на PHP, и эта статья — лишь хорошее подспорье для PHP-кодеров и всех интересующихся.

Я закончу на этом.

Удачи.

Теги: #php #bamcompile #winrar #GTK #WinBlider #Разработка сайтов

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.