PHP - крос-платформний мова розробки додатків? Так!
Кілька років тому, все було направлено на те, щоб зробити PHP десктопних і довелося відмовити від GTK PHP. З тих часів уже з'явилися нові гравці, але спочатку давайте відповімо на питання «чому?».
Чому вирішили розробити крос-платформенне додаток PHP для десктопних пристроїв? Чому б не підлаштуватися під щось, що може мати відношення до API низького рівня операційної системи, на зразок Adobe AIR? Чому б не працювати з чимось трохи застарілим, але надійним, як Java? Чому б не зробити додаток Chrome, а якщо Вам потрібна нативная підтримка, то чому б не використати Native Client? Якщо Вам потрібна мова написання сценаріїв, то чому б просто не використовувати Python?
Перше, що спадає на думку, це кілька неправдоподібних сценаріїв:
- Вам потрібен компроміс між легким синтаксисом і хорошою структурою, яка є PHP, і Ви не будете стурбовані тим, що потрібно буде вчити нову мову як ActionScript.
- Ви керуєте IT в компанії з людьми, які абсолютно неграмотні в питанні комп'ютерів, і єдиний спосіб змусити їх використовувати хороший браузер для Вашого застосування полягає в тому, щоб включити його в програму, яку ви складаєте.
- Ви хочете уникнути оплати хостингу для Вашого застосування, і Ви віддаєте перевагу, щоб він зберігався у Вас на USB флешці. Ви просто вставляєте її, запускаєте і ось воно - Ваша програма - яке використовує той же SQLite DB, що і раніше.
- Вам не потрібен доступ до OS API - Ви просто хочете створити браузер для ігор, або для роботи з додатками, або ще для чогось в цьому роді. PHP прекрасно підходить, і Ви вже знаєте його мову.
Ці сценарії можуть виглядати як соломинки, за які ми намагаємося вхопитися, а насправді, ми не можемо придумати жодної реальної причини для того, щоб захотіти робити те, що не має життєздатної альтернативи. Давайте подивимося як.
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 означає "wxWidgets для PHP" і є розширенням PHP, яке охоплює бібліотеку wxWidgets, яка дозволяє писати мульти платформні настільні додатки, що використовує нативні графічні компоненти, які підходять для різних платформ. - Вікіпедія.
Ви встановлюєте wxPHP як окрему програму, яка допомагає Вам виконати підтримку .wxphp файлів, шляхом простого подвійного клацання.
Це означає, що Ваші програми - це прості файли, і Ви можете легко їх поширювати. Ви можете організувати свій код у файли і класи, як зазвичай, і розподілити папки. Головний .wxphp файл може, також, включати в себе і інші ресурси.
Установка йде з декількома прикладами, включаючи той, який ініціалізує веб-уявлення і завантажує wxPHP веб-сайт в структурі wx. Одна річ, яку варто відзначити - з wxPHP ви не розвиваєте веб-сайти, як ніби Ви в мережі. Іншими словами, Ви не розвиваєте офлайнові веб-сайти, але пов'язуєте разом різні wx віджети. Також, у бібліотеки є щось на зразок кривої навчання, і Вам буде не вистачати можливостей HTML5, до яких Ви могли звикнути. Є деякий Доказ Поняття внутрішнього управління сервера PHP і обслуговування запитів, але це поки на рівні експерименту і трохи складно, і ще раз представляє localhost, як Nightrain.
Якщо Ви серйозно ставитеся до настільного розвитку PHP, wxPHP - безумовно, кращий вибір, в порівнянні з Nightrain, навіть якщо враховувати, що Nightrain дозволяє Вам написати старий добрий HTML для GUI.
Одне з найбільших переваг wx - той факт, що встановленими одного разу wxphp файлами можна управляти за клацанням миші. Немає додаткових установок, ніяких незручних консолей. Для технічно неписьменних людей це - знахідка - Ви можете легко поширити додаток у своїй компанії через звичайну електронну пошту, і процедура поновлення так само проста, як переписування файлу.
TideSDK має дещо інший підхід ніж перші два приклади. Для того, щоб розробити додатки, Ви встановлюєте SDK, а кожна платформа має свої необхідні системи і практики. TideSDK по суті є перейменованим проектом Titanium Desktop. Titanium залишається зосередженим на мобільному пристрої і залишив настільну версію, однак, був прийнятий деякими людьми, які зробили з нього відкритий джерело і назвали TideSDK.
Після того, як ми встановили його згідно гіду, і як тільки у нас є розробник додатків TideSDK, можемо почати розробку. Додатки, які Ви будуєте за допомогою Tide (через додаток помічника, або через командний рядок) можна буде легко поширити і чисто виконати, або можуть бути розподілені як встановлюються пакети, які отримують статус "додатка", включаючи впроваджений процес установки, який робить неможливим встановлення через Додати / Видалити Програми на Windows або через Ваші диспетчери пакетів на інших операційних системах.
Зазвичай TideSDK використовує HTML, CSS і JS, для того, щоб представити додаток, але він підтримує підготовлені мови як Python, Ruby і PHP. Движок після надання WebKit, що означає, що він не буде поспішати починати роботу, але він підтримує останні веб-технології.
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 додатків для декстопов відрізняється від прикладу використання для прикладу використання і часто їх не просто налаштовувати, ми вважаємо, що необхідно знати про можливості, які Ви коли-небудь можете використовувати.
УВАГА! Ви використовуєте застарілий браузер Internet Explorer
Даний сайт побудований на передових, сучасних технологіях і не підтримує Internet Explorer 6-ої і 7-ої версії.