Разработка GUI приложений на PHP

WxMaper

Новичок
Предлагаю вашему вниманию интересный и нестандартный проект - движок PQEngine, который позволяет создавать полноценные десктопные приложения для операционных систем Windows (минимальная поддерживаемая версия - Windows 7) ;)

Движок стал продолжением развития библиотеки PHPQt5 (не путать с php-qt!), текущая публичная версия (0.5.1) работает в связке с PHP 7.0.4 ThreadSafe, графический интерфейс предоставляется фреймворком Qt 5.6.0.

Движок предоставляется пользователям в дистрибутиве для быстрого развертывания приложений, который включает в себя:
  • Статическую библиотеку pqengine.lib версии 0.5.1
  • Набор официальных расширений движка PQEngine
  • Фреймворк Qt версии 5.6.0
  • Компилятор MSVC14
  • Утилиту управления проектом PQBuilder


скриншот утилиты PQBuilder, которая разработана на PHP с использованием PQEngine

Пример кода для создания простейшего окна с кнопкой:
PHP:
<?php

// Создаём форму
$widget = new QWidget;
$widget->windowTitle = 'Hello World!';

// Создаём кнопку на форме
$button = new QPushButton($widget);
$button->text = 'Йа кнопко :)';

// Создаём действие при клике
$button->onClicked = function() {
    echo 'Клик!';
};

// Устанавливаем размер формы и отображаем её
$width = 200;
$height = 100;

$widget->resize($width, $height);
$widget->show();

// Запуск обработки событий
qApp::exec();

Ссылка на страницу проекта: http://phpqt.ru/pqengine
 

Adelf

Administrator
Команда форума
Если бы они хоть кросс-платформенные были - то еще можно было бы хоть как-то на что-то рассчитывать. Но Windows-only.... Тут .NET просто рвет. Не вижу вообще никакого смысла в поделке. Сорри.
 

WxMaper

Новичок
Пока нет ни одной стабильной версии, поэтому публичных версий для других ОС нет.
Но движок успешно запускался на Linux (ubuntu) без правки исходников вообще. С macos у тестера возникли проблемы со сборкой phpts.
Исходный код движка не привязан к конкретной платформе :)
 

Adelf

Administrator
Команда форума
Ну ладно. Там Qt - я мог бы сразу догадаться. Но вот, скажи честно, @WxMaper, кто будет использовать это? И для каких целей?
 

WxMaper

Новичок
Кому понадобится, кого заинтересует - тот и будет. Проект не позиционируется как замена другим десктопным фреймворкам и библиотекам (а было бы забавно :))
Лично я вижу такого пользователя: PHP программист, у которого появилась необходимость быстро наклепать приложение для какой-нибудь тривиальной задачки. И ему совершенно необязательно знать C#, C++, JAVA. Он хорошо владеет PHP и может сделать то, что ему нужно за считанные часы.
Реальный пример: один из пользователей разработал программу для работы и внедрил ее в своем офисе. Точное её назначение я не знаю, что-то связано с рассылкой по outlook. Выглядит она так:


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

Это, насколько мне известно, второй наиболее серьезный проект, разработанный с использованием движка. Первый - это, собственно, сам сборщик проектов PQBuilder - он тоже на php написан.
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
За часы изучить Qt?… Хотя бы даже в минимальном объёме десятка базовых объектов?…
Ладно, я, у меня опыть работы с WinAPI…
 

fixxxer

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

Чтобы наклепать, гораздо лучше подходят Electron и прочие AppJS.
 

WxMaper

Новичок
За часы изучить Qt
А зачем изучать Qt, если, так сказать, "ядро" программы написано на PHP? Qt - лишь средство отрисовки. Ну да, нужно знать названия базовых классов - виджет, кнопка, чекбокс... Названия стандартных методов и полей... но это не сложнее изучения той-же библиотеки CURL. Особенность не в том, что разработчику предоставляется Qt, нет. Особенность в том, что разработчик может собрать standalone приложение используя наиболее распространенный и богатый готовыми решениями язык программирования, с возможностью отображения информации в виджетах Qt.

п.с. через некоторое время будет доступна ide с визуальным редактором для форм и редактором исходников с автоподстановкой. Это немного облегчит процесс разработки.
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
не буду спорить :) возможность выбора инструмента - это хорошо. Главное чтобы было из чего выбирать
Это бесспорно. Но пока нет кроссплатформенности - смысла не вижу, кому эта винда нужна? :) Хотя раз там Qt, это должно быть несложно допилить, главное, чтобы компилировать можно было тем же clang-ом.
 

Adelf

Administrator
Команда форума
Вот кстати да. Реактивный яваскрипт принести если в десктоп - в разы больше профит. А то это Qt в обертке из PHP - выглядит как экскременты мамонта. лет 15-20 назад было бы круто.
 

WxMaper

Новичок
Это бесспорно. Но пока нет кроссплатформенности - смысла не вижу, кому эта винда нужна? :) Хотя раз там Qt, это должно быть несложно допилить, главное, чтобы компилировать можно было тем же clang-ом.
Да хоть чем он компилируется :) mingw, gcc, msvc... и даже clang-om - движок был успешно собран на macos, но протестировать его не удалось из-за отсутствия у тестера phpts. У меня пока нет желания самому разбираться с маком, когда будет более-менее полноценный релиз, будет видно.
Собрать движок в линуксе можно буквально в 2 тапа по клавиатуре в терминале. Единственная загвоздка тут - отсутствие phpts в официальных дистрибутивах. Приходится перед компиляцией движка дополнительно собрать phpts. Я пока не придумал как обойти проблему зависимостей в разных дистрибутивах Linux
 

hell0w0rd

Продвинутый новичок
А эта фигня тянет за собой рантайм php и вкомпиленный qt?
А то чем раздражает electron - включаешь сафари, чтобы сэкономить батарейку, а все равно 3-4 хрома у тебя открыто, если чатиками пользуешься
 

fixxxer

К.О.
Партнер клуба
А эта фигня тянет за собой рантайм php и вкомпиленный qt?
А то чем раздражает electron - включаешь сафари, чтобы сэкономить батарейку, а все равно 3-4 хрома у тебя открыто, если чатиками пользуешься
Я ж предлагаю для "наклепать", а не как продакшен-решение :)
А что за говночатики такие, кроме говнослака (в котором, благо, xmpp gateway есть)?
 

WMix

герр M:)ller
Партнер клуба
а в qt вроде есть возможность view на xml + css писать. и дизайнер есть встроенный.
нафига эти $widget = new QWidget?
 
Сверху