3 Способа разработать кросс-платформенное настольное приложение на php

PHP – кросс-платформенный язык разработки приложений? Да!

Пара лет назад, все было направлено на то, дабы сделать PHP десктопным и было нужно отказать от GTK PHP. С тех лет уже показались новые игроки, но сперва давайте ответим на вопрос «из-за чего?».

Из-за чего?

Из-за чего решили создать кросс-платформенное приложение PHP для десктопных устройств? Из-за чего бы не подстроиться под что-то, что может иметь отношение к API низкого уровня ОС, наподобие Adobe AIR? Из-за чего бы не трудиться с чем-то мало устаревшим, но надежным, как Java?

Из-за чего бы не сделать приложение Chrome, а вдруг Вам нужна нативная помощь, то из-за чего бы не применять Native Client? В случае если Вам нужен язык написания сценариев, то из-за чего бы просто не применять Python?

Первое, что приходит на ум, это пара неправдоподобных сценариев:

  1. Вам нужен компромисс между хорошей структурой и лёгким синтаксисом, которая есть PHP, и Вы не станете обеспокоены тем, что необходимо будет учить новые языки как ActionScript.
  2. Вы руководите IT в компании с людьми, каковые полностью неграмотны в вопросе компьютеров, и единственный метод заставить их применять хороший браузер для Вашего приложения пребывает в том, дабы включить его в приложение, которое Вы составляете.
  3. Вы желаете избежать оплаты хостинга для Вашего приложения, и Вы предпочитаете, дабы он хранился у Вас на USB флешке. Вы ее, запускаете и вот оно – Ваше приложение – которое применяет тот же SQLite DB, что и раньше.
  4. Вам не нужен доступ к OS API – Вы создать браузер для игр, либо для работы с приложениями, либо еще для чего-то в этом роде. PHP замечательно подходит, и Вы уже понимаете его язык.

3 Способа разработать кросс-платформенное настольное приложение на phppЭти сценарии смогут смотреться как соломинки, за каковые мы пробуем ухватиться, а в действительности, мы не можем придумать ни одной настоящей обстоятельства чтобы захотеть делать то, что не имеет жизнеспособной альтернативы. Давайте посмотрим как.

Nightrain

Nightrain – это предварительно упакованный комплект нужных совокупностей и практик PHP-хостинга трудящийся на сегодня на PHP 5.5.x. это упаковщик написанный Python, что применяет внутренний сервер PHP для принятия Вашего приложения, что разрешает обойти стороной Apache и Nginx и минимизировать ненужные конфигурации. Но, это кроме этого свидетельствует, что многие более продвинутые нюансы не будут трудиться и Вам нужно будет использовать лишь самые примитивные приложения.

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

Более того, Вы имеете возможность запустить лишь одно приложение nightrain по умолчанию, поскольку он запускает сервер в порту 8000 и позже браузер открывает «тайный» визит localhost:8000. Если Вы желаете запустить сходу пара разных приложений, Вам необходимо поменять порт в settings.ini. Это, кроме этого, свидетельствует, что несложный визит localhost:8000 в браузере Вашей хост автомобили продемонстрирует Вам то же приложение.

Nightrain совместим с большинством приложений/фреймворков PHP в случае, если Вы измените базу данных на SQLite, которая употребляется и настраивает объединенный в пакет php.ini для некоторых недостающих разрешений. MySQL не объединен в пакет и не установка простого стека не есть таковой уж несложной задачей. Весьма эти SQLite прямиком на сервер, что Вы используете чтобы как-то централизовать базу данных и исходя из этого применение SQLite в совокупности, где работает приложение, представляется чем-то логичным.

Непременно, самый серьёзный недочёт приложения пребывает в том, что оно применяет виджеты WX, дабы привести браузер в воздействие, и на Windows, это, думается, сводится к IE7. Это изменение думается вероятным, при помощи WXPython, как упомянуто выше, но такое еще не было предпринято. Возможно лишь сохранять надежду, что объект браузера не так долго осталось ждать будет обновлен на что-то более применимое – а , пока все другие критические недочёты не будут исправлены, сложно кроме того представить, как возможно применять Nightrain.

WXPHP

wxPHP свидетельствует “wxWidgets для PHP” и есть расширением PHP, которое охватывает библиотеку wxWidgets, которая разрешает писать мульти платформенные настольные приложения, применяющая нативные графические компоненты, подходящие для разных платформ. – Википедия.

Вы устанавливаете wxPHP как отдельную программу, которая оказывает помощь Вам выполнить помощь .wxphp файлов, методом несложного двойного щелчка.

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

Установка идет с несколькими примерами, включая тот, что инициализирует веб-представление и загружает wxPHP сайт в структуре wx. Одна вещь, которую необходимо подчеркнуть – с wxPHP Вы не развиваете веб-сайты, как словно бы Вы в сети. Иначе говоря Вы не развиваете офлайновые веб-сайты, но связываете совместно разные wx виджеты.

Кроме этого, у библиотеки имеется что-то наподобие кривой обучения, и Вам будет не хватать возможностей HTML5, к каким Вы имели возможность привыкнуть. Имеется некое Подтверждение Понятия внутреннего управления сервера PHP и обслуживания запросов, но это до тех пор пока на уровне опыта и мало сложно, и еще раз воображает localhost, как Nightrain.

wxPHP сопровождается красивыми инструментами строительства формы, которая окажет помощь Вам машинально генерировать код PHP, что нужен для приложений wxPHP при помощи редактора wysiwyg.

Перед тем, как Вы решите, что wx через чур тривиален, кое-какие уже создали в нем более чем базисные приложения. К примеру, имеется редактор PHP Editor с отладкой на другой платформе и встроенным API.

Если Вы без шуток относитесь к настольному формированию PHP, wxPHP – непременно, лучший выбор, если сравнивать с Nightrain, даже в том случае, если учитывать, что Nightrain разрешает Вам написать ветхий хороший HTML для GUI.

Одно из самых громадных преимуществ wx – тот факт, что установленными в один раз wxphp файлами возможно руководить по щелчку мыши. Нет дополнительных установок, никаких неловких консолей. Для технически неграмотных людей это – находка – Вы имеете возможность легко распространить приложение в собственной компании через простую email, и процедура обновления так же несложна, как переписывание файла.

TideSDK

TideSDK имеет пара другой подход нежели первые два примера. Чтобы создать приложения, Вы устанавливаете SDK, а любая платформа имеет собственные практики и необходимые системы. TideSDK по сути есть переименованным проектом Titanium Desktop.

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

По окончании того, как мы установили его в соответствии с экскурсоводу, и когда у нас имеется разработчик приложений TideSDK, можем начать разработку. Приложения, каковые Вы строите посредством Tide (через приложение ассистента, либо через командную строчок) возможно будет легко распространить и чисто выполнить, либо смогут быть распределены как устанавливаемые пакеты, каковые приобретают статус “приложения”, включая внедренный процесс установки, что делает неосуществимым установку через Добавить/Удалить Программы на Windows либо через Ваши диспетчеры пакетов на вторых операционных совокупностях.

Дополнительные ресурсы употребляются совместно с клиентом WebKit и привычным и широким API. API предпочтительнее, поскольку, снабжает доступ файловой совокупности, что разрешает Вам просматривать и руководить файлами. API кроме этого разрешают создавать и взаимодействовать с местной базой данных. Сетевой API разрешает создавать клиент-серверы либо взаимодействовать с HTTP на намного более низком уровне.

Кроме этого имеется возможность открытия сокет связи с другими сервисами.

В большинстве случаев TideSDK применяет HTML, CSS и JS, чтобы представить приложение, но он поддерживает подготовленные языки как Python, Ruby и PHP. Движок по окончании предоставления WebKit, что свидетельствует, что он не будет торопиться затевать работу, но он поддерживает последние веб-разработки.

Сердце TideSDK – это объектный мост, собранный в компонент WebKit. Мост разрешает вторым языкам сценариев – python, php либо ruby – трудиться на HTML странице, применяя показатели подлинника в DOM, совершенно верно так же, как JavaScript. Вы имеете возможность конкретно вызывать .py, .rb либо .php файлы из Вашего приложения.

PHP активируется методом добавления официального модуля файла манифеста, приблизительно так:

#appname:HelloWorld #appid:com.tidesdk.helloworld #publisher:Software in the Public Interest (SPI) Inc #image:default_app_logo.png #url:http//tidesdk.org #guid:845e9c3c-c9ff-4ad4-afdf-9638092f044f #desc:Sample Hello World application #type:desktop runtime:1.3.1-beta app:1.3.1-beta codec:1.3.1-beta database:1.3.1-beta filesystem:1.3.1-beta media:1.3.1-beta monkey:1.3.1-beta network:1.3.1-beta platform:1.3.1-beta process:1.3.1-beta ui:1.3.1-beta worker:1.3.1-beta php:1.3.1-beta

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

Весьма интересно то, что возможности TideSDK выступают в роли моста, что разрешает Вам, при применении PHP в приложении, незаметно конвертируют эти из JS в PHP и напротив. Тут возможно почитать об этом более детально, но обучающее видео будет позднее.

Имеется два главных минуса в применении TideSDK для разработки настольных PHP приложений:

  • Процесс создания PHP допускает баги, и нет возможности вводить исправления.
  • Объединенная PHP версия плохо устарела – по сей день версия 5.3.X. Одновременно с этим довольно ее обновленной версией через папку /modules в инсталляционном каталоги, это – недостаток и дополнительная неприятность многих современных функций PHP, каковые имели возможность бы понадобиться в настольной разработке приложений, не говоря уже о встроенном сервере, что, кроме этого, имел возможность бы тут взять тайный метод применения.
  • Имеется кривая обучения. DOM API – это что-то хорошее, к чему Вы имели возможность уже привыкнуть в разработке. Дабы отразить что-либо на мониторе, Вам может скорее пригодится вызов $document-write(), чем echo. Это незначительные различия, но может сбить Вас с толку.
  • Непременно, самый громадный минус – это компиляция. Пакет, что Вы приобретаете, строя приложение, связан с платформой. Дабы выстроить приложение для разной внешней среды, у Вас должна БЫТЬ эта разная окружающая среда. Неравенство Windows/Linux легко решается виртуальными автомобилями (не смотря на то, что все легче решить, в случае если Ваш хост – Windows, и у Вас имеется Linux VMs, чем напротив).

TideSDK – это хорошая опция, но весьма далека от того, дабы быть юзабельной. Он превосходно трудится для доставки HTML/CSS/JS, но в то время, когда дело доходит до PHP, все же wxPHP – лучший выбор.

Другие опции

Имеется еще опции, о которых прекрасно было бы упомянуть, но они, все-таки, плохие.

– PHPDesktop подобен Nightrain, но лишь на Windows. Но иначе, он связан с сервером Mongoose, и исходя из этого может делать параллельные запросы. Он кроме этого трудится на Chrome, что свидетельствует, что он медлительно открывает/отдает, но поддерживает последние веб-разработки.

Привязанность в Windows исключает мульти-платформенность.

– Webinder и PHP GTK весьма в далеком прошлом не обновлялись и смогут быть использованы скорее как дополнение. Вместе с тем, Webinder трудится лишь на Windows

Вывод

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

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

Высоких конверсий!

Случайные статьи:

Embarcadero: Разработка мобильных приложений в Delphi XE5/RAD Studio XE5


Подборка похожих статей:

riasevastopol