Что за программа php devel studio

На сегодняшний день язык PHP широко распространён, он прост в освоении и понимании, и наверное поэтому он так популярен у начинающих программистов. Без знаний PHP не поправить блок голосования на сайте, не отредактировать PHP шаблон, не вставить рекламный баннер. Многие идут дальше и изучают язык более углубленно, ведь это не только интересно, но и приносит стабильный доход, благо разнообразных предложений для PHP программистов всегда в избытке.

Но что делать, если хочется чего-то большего? Если надоело писать однотипные классы для онлайн-казино, ковыряться в Joomla/Drupal/PHPBB очередного заказчика?

Думаю, что многих посещала мысль начать писать Windows программы на любимом языке PHP, но дальше поиска по интернету и поверхностного изучения таких библиотек как PHP-QT и PHP-GTK дело, как правило, не доходит. Почему? Все ответы схожи — запутанно, сложно, ненаглядно, непонятно и т.д. Но сегодня уже есть качественно новая и перспективная среда для визуальной разработки программ на PHP под Windows и имя ей — PHP Devel Studio (сокр. DevelStudio).

[Обещанный накрутчик просмотров] Урок PHP Devel Studio 3.0

Что же представляет собой DevelStudio?

Это удобная и понятная визуальная среда программирования, которая позволяет создавать полноценные программы на языке PHP с поддержкой GUI. Теперь, для создания программ под Windows достаточно знать самый популярный язык программирования — PHP.

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

Предыстория

Итак, в один прекрасный вечер я уже в который раз снова посетил сайт проекта «Denwer» с целью проверить, не вышло ли там обновление. К моему разочарованию ничего нового там не оказалось, по-прежнему я обнаружил лишь новую ругань в адрес разработчиков с обвинениями в выклянчивании пожертвований и абсолютном бездействии.

Меня не покидало желание отказаться от Denwer и написать свою, действителньо удобную и полезную программу для управления локальным веб-сервером. После недолгих поисков моё внимание привлекла среда разработки «DevelStudio». Она оказалось предельно удобной, понятной и самое удивительное — она открыла мне дорогу в мир Windows программ. Поразмыслив над логикой управления веб-сервером я приступил к написанию «Open Server».

Знакомство с DevelStudio

Первые несколько дней были потрачены на изучение среды и написание простейших программ. Нашлось несколько багов в работе самой среды разработки, они будут описаны в конце статьи. Так же были установлены два полезных дополнения (библиотека примеров + каталог классов и функций) и один неофициальный патч, дающий возможность сжатия программы UPX упаковщиком в момент компиляции.

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

PHP Devel Studio [Урок #1] — Интерфейс Среды Разработки

DevelStudio — это этакая смесь из Delphi и PHP, щедро приправленная компонентами этих самых Delphi и PHP. Чего стоит один только Alphaskin, который я использовал самым непосредственным образом при написании программы. Но обо всём по порядку…

Написание программы

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

Затем были созданы следующие формы: Настройки, Просмотр логов, О программе, Ошибка и Первый запуск. За короткий срок во все формы были добавлены необходимые управляющие элементы, поля ввода, иконки и прочее. Всё это было сделано без единой строчки кода. Вот она мощь визуальной среды!

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

Читайте также:
Комп сам устанавливает программы что это

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

1. Стартовая функция (выполняется при загрузке программы)

Вот так получилось реализовать проверку на то, не была ли уже запущена программа:

$output = shell_exec(‘tasklist /nh /fi «Imagename eq Open Server.exe»‘); // получение списка процессов $ret = iconv(‘CP866′,’CP1251′,$output); if (substr_count($ret,’Open Server.exe’)>1) < c(‘trayIcon1’)->enabled = false; // отключаем трей-меню LoadForm(c(‘message’), LD_NONE); // загружаем форму с сообщением об ошибке >else

Вот так, например, добавляются элементы в выпадающее меню:

$mm = new TMenuItem; $mm->caption = t(«menu_9»); // t — это функция мультиязычности, здесь будет написано Выход $mm->loadPicture(«server/system/data/exit.bmp»); // подгружаем иконку $mm->onClick = exitfunc; // функция выполняющая остановку сервера / выход из программы

А вот так удалось решить задачу с определением битности Windows и проверке на наличие установленных компонентов Microsoft Redistributable C++. Битый час я не мог понять, почему в 32 и 64 битных версиях Windows ключи реестра имеют разное значение, а то они и вовсе не там, где предполагалось.

if(getenv(«PROCESSOR_ARCHITEW6432″)==»AMD64» || getenv(«PROCESSOR_ARCHITECTURE»)==»AMD64″)< $output = shell_exec(«REG QUERY HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\»); // запрос в реестр $ret = iconv(‘CP866′,’CP1251′,$output); if (substr_count($ret,»)’)<1) < c(‘trayIcon1’)->enabled = false; LoadForm(c(‘proc’), LD_NONE); // загрузка формы с предложением установить недостающие компоненты > >else< $output = shell_exec(«REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\»); $ret = iconv(‘CP866′,’CP1251′,$output); if (substr_count($ret,»)’)enabled = false; LoadForm(c(‘proc’), LD_NONE); // загрузка формы с предложением установить недостающие компоненты > >

2. Форма просмотра логов

Здесь всё было предельно просто — чтение лог-файла и вывод содержимого в форму, но пришлось пойти на хитрость, чтобы сделать автоматическую установку курсора в конец списка (возможности среды этого не позволяют).

Вот как изначально я обрабатывал переключение табов и установку курсора в конец лога:

$WshShell = new COM(«WScript.Shell»); if (c(«pages1»)->pageIndex == 0) c(«memo1»)->setFocus(); // установка фокуса на текстовое поле elseif (c(«pages1»)->pageIndex == 1) c(«memo2»)->setFocus(); . elseif (c(«pages1»)->pageIndex == 6) c(«memo7»)->setFocus(); $WshShell->SendKeys(«^»); // нажатие клавиши END чтобы попасть в конец $WshShell->SendKeys(«»); // Нажатие клавиши HOME чтобы вернуться в начало последней строки

Как мы видим, были использованы компоненты COM, но по совету одного доброго человека этот код был превращён в следующий:

$ppindex = c(«logs->pages1»)->pageIndex; $obmemo = c(«logs->memo».($ppindex+1)); // определяем активный таб $cnlines = $obmemo->items->lines; // получаем содержимое $seltn = strlen( $obmemo->text ) — strlen($cnlines[ count($cnlines)-1 ]); // определение последней строки $obmemo->setFocus(); $obmemo->selStart = $seltn; // установка курсора в начало строки $obmemo->selLength = 0; // установка длины выделения

3. Форма настроек

Чтение и запись настроек в DevelStudio происходят достаточно просто и очевидно:

ini :: open(«server/system/config.ini»); // открываем файл настроек ini :: read(«main», «lang», $lang); // читаем параметр ini :: write(«main», «lang», c(«settings->combobox1»)->inText); // сохраняем параметр

Но кое с чем пришлось повозиться — это получение списка свободных дисков в системе.
Вот что сперва получилось, это довольно интересно:

$fso = new COM(«Scripting.FileSystemObject»); $disks = array(); foreach($fso->Drives as $disk) $disks[] = $disk->DriveLetter; // получаем массив дисков $diskarr = array(«D»,»E»,»F»,»G»,»H»,»I»,»J»,»K»,»L»,»M»,»N»,»O»,»P»,»Q»,»R»,»S»,»T»,»U»,»V»,»W»,»X»,»Y»,»Z»); $diskar = array(); foreach($diskarr as $fffile) if($fffile == $os_vdisk)<$diskar[] = $fffile;>else // если диск существует, то исключаем его из списка c(«combobox2»)->text = implode(«n»,$diskar); $icounter = 0; foreach($diskar as $fffile) itemIndex = $icounter; $icounter++;>

Здесь снова был использован компонент COM и опять же не обошлось без доброго совета со стороны.
Я подключил DLL библиотеку phposinfo.dll и итоговый код получился таким:

$dliters = array(«A», «B», «C», «D», «E», «F», «G», «H», «I», «J», «K», «L», «M», «N», «O», «P», «Q», «R», «S», «T», «U», «V», «W», «X», «Y», «Z»); $diskar = array(); $icounter = 0; $icount = true; foreach ($dliters as $dliters) // перебираем массив дисков < if ($dliters == $os_vdisk) < $diskar[] = $dliters; $icount = false; >else < if (osinfo_drivetype($dliters . «:») == 1) // функция из phposinfo.dll для получения кода состояния диска < $diskar[] = $dliters; // если ответ единица добавляем букву диска в список свободных if ($icount) $icounter++; >> > c(«combobox2»)->text = implode(«n», $diskar); // добавляем массив дисков в выпадающий список c(«combobox2»)->itemIndex = $icounter; // указываем выбранный пункт списка

4. Функция запуска локального сервера

Это самая объёмная функция, нужно было сделать перезапись конфигурации модулей по шаблонам, запустить виртуальный диск, запустить Apache, Mysql, FTP сервер и написать ещё много всего интересного, однако и тут DevelStudio и форум поддержки среды позволили мне реализовать всё задуманное. Далее несколько интересных моментов…

Читайте также:
Что это за программа с губами

Были проблемы с определением системного диска и получения пути до HOSTS файла, в итоге всё оказалось легко и просто:

$hostsfile = winLocalPath(CSIDL_WINDOWS) . «/System32/drivers/etc/hosts»;

Запускаем виртуальный диск (здесь используется системная утилита subst.exe, а так же получение локальной директории и пути до системной папки Windows):

Shell_Execute(0, ‘open’, ‘subst.exe’, $os_vdisk . ‘: «‘ . substr(realpath(‘./’), 0, strlen(realpath(‘./’)) — 1) . ‘»‘, strtr(winLocalPath(CSIDL_WINDOWS).’/System32/’,’/’,’\’), 0);

Запуск Apache (функция Shell_Execute позволяет запустить стороннюю программу в фоне и без ожидания ответа):

Shell_Execute(0, ‘open’, ‘os-httpd.exe’, », $realospath . ‘\server\http\’ . $os_httpdriver . ‘\bin\’, $os_window);

Хотелось бы особо отметить, что один из багов DevelStudio — зависания при использовании фоновых процессов в Windows XP. Из-за этого пришлось сделать все процессы не фоновыми и, как следствие, отключать трей-меню на моменты запуска/остановки сервера. Если этого не сделать может показаться что программа зависла, ибо в моменты выполнения real-time процессов элементы управления ни на что не реагируют.

Для создания красивого и одинаково выглядящего во всех версиях Windows трей-меню был использован компонент Skin, а так же один из скинов AlphaSkin, который был мною предварительно отредактирован.

image

После компиляции на выходе у нас получается обычный исполняемый EXE файл, т.е. собственно сама наша программа. PHP код содержится там в бинарном скомпилированном виде, его дешифровка невозможна, что в принципе позволяет уже сейчас писать платный коммерческий софт. Впрочем преобразование PHP кода в байт-код (используется расширение BCompiler) можно отключить в настройках DevelStudio.

Как видите, с помощью PHP и DevelStudio мне удалось реализовать все поставленные перед собой задачи. Не обошлось без вызова системных утилит и встроенных функций среды разработки. Получилась полноценная Windows программа написанная на языке PHP, точнее даже комплекс программ для организации веб-сервера на локальном компьютере, сейчас проект Open Server живёт и успешно развивается.

Настоящее и будущее DevelStudio

Сейчас DevelStudio базируется на движке PHP 5-ой версии, однако автор ведёт усиленную работу над созданием особой ветки улучшенного PHP — так называемого движка Orion, который будет использоваться в DevelStudio уже со следующей версии. С одной стороны это пугает тем, что больше никаких обновлений от оригинального PHP в самой среде не появиться, кроме того что уже есть в той версии PHP, которая выбрана для разработки Orion. С другой стороны хочется надеяться, что движок Orion преподнесёт нам не мало новых вкусностей, а обещают там очень многое:

Отечественные разработчики Devel Studio, сообщают, что их новая среда разработки уже скоро начнёт работать с собственным скриптовым языком программирования Orion, синтаксис которого будет сочетать популярный PHP + новые конструкции языка.
Также сообщается то, что для Devel Studio почти готов абстрактный игровой движок, который основывается на ZenGL и в него будет подключен Orion. GameAbstract Framework — открытый игровой фреймворк быстрой и удобной разработки 2D-игр на Pascal (Delphi/FreePascal), Orion и на прочих ЯП. Абстракция позволит разработчикам заниматься именно логикой игры, взяв на себя всю остальную рутину.
GameAbstract позволит создавать игры на популярные платформы: Windows, Linux, MacOS (а в будущем и iPhone/iPad). Разработчик будет волен выбрать графический интерфейс: OpenGL, DirectX или OpenGL ES для мобильных систем. Физика будет реализована на основе технологии Chipmunk.

По материалам сайта gcup.ru от 2011-05-23

Заключение

В целом DevelStudio оставила после себя хорошее впечатление, далее мои скромные выводы.

Баги:
— зависание php программы при использовании фоновых процессов в WinXP;
— фоновые процессы не убиваются после отработки (занимают память);
— изменение размеров не вручную, а стрелками больше/меньше приводит к краху;
— нельзя использовать режим отладки и вывод ошибок, иначе изменения не сохраняются;
— без патча не работает упаковщик UPX;

Минусы:
— наличие некоторых багов;
— программы получаются довольно объёмные, но при использовании UPX разница не так велика;
— больший объём занимаемой оперативной памяти, чем аналог на Delphi или С++;
— крайне плохая официальная документация, скудная и устаревшая;

Плюсы:
— простота в освоении и удобство разработки;
— хорошее комьюнити;
— широкие возможности по использованию сторонних библиотек;
— высокая скорость разработки программ;
— наслаждение от написания Windows программ на языке PHP 😉

На мой взгяд, визуальная среда разработки DevelStudio — это очередной шаг к размытию границ между выбором языка разработки программ под Windows. Пишите полезные программы, развивайтесь и не бойтесь экспериментировать!

Читайте также:
Программа киа финанс что это

UP: Откуда в Вас столько ненависти? Это всего лишь очередной способ использования языка PHP. Довольно интересная среда разработки, хотя бы в плане саморазвития. Никто не говорит что нужно бросать всё и садиться писать Windows программы на PHP.

Просто задайте себе вопрос — если бы вы узнали, что ваша машина может не только ездить, но и летать, разве вам это было бы не интересно? Ах да, ведь для полётов есть самолеты, не так ли.

  • develstudio
  • php
  • программирование
  • средства разработки

Источник: habr.com

Евгений Степанищев

Пишу, по большей части, про историю, свою жизнь и немного про программирование. Живу в Казани.

DevelStudio

DevelStudio (41.05КиБ)

Когда-то я программировал на Delphi. Несколько лет и, кажется, даже неплохо. Два диплома, сделанных мною при помощи этой среды люди защитили на «пять». Поэтому, увидев этот скриншот пару дней назад, я бы подумал, что это какие-то ранние прототипы Delphi или что-то самодельное, но сделанное под влиянием.

Это PHP DevelStudio, среда для разработки графических утилит на PHP, сделанная действительно под влиянием Delphi. Визуальное программирование — натаскиваем компонентов, расставляем кнопки, диалоги, окошки, пишем обработчики кликов, нажатий и прочего, компилируем, готов exe-файл. При этом приложение пишется на PHP с использованием специального framework.

Пару дней поковырялся, забавно. Никакой мистики, старый как мир принцип — интерпретатор, библиотеки и прочее складывается в один файл. Отсюда и основной недостаток — даже сжатый UPX’ом (среда сама умеет им сжимать) запускаемый файл примера, который всего-то решает квадратное уравнение, занимает несколько мегабайт и стартует чуть-чуть медленнее, чем хотелось бы.

Тем не менее, авторы сделали гигантскую работу (кстати, DevelStudio написана на PHP) и программировать действительно удобно и просто.

На сайте программы есть справка и видеоуроки (кстати, рекомендую посмотреть видеоуроки, основы воспринимаются очень быстро).

Из-за стартового конского размера, программировать на DevelStudio что-то мелкое как-то расточительно, сказываются накладные расходы, но может это мои комплексы. При увеличении объёма программы они не меняются (если вы не подключаете ещё модули, cURL, скажем), так что логичнее замахнуться на что-то более существенное. Проект молодой (ему несколько месяцев), желаю авторам не потерять запал.

Добавлено на следующий день. Тут в комментариях вспомнили Delphi for PHP и веб-разработку. Ребята, DevelStudio не про то. DevelStudio позволяет получать запускаемые GUI приложения. Никакого веба, никакого Apache и прочего.

Источник: bolknote.ru

PHP DevelStudio 2.0

PHP DevelStudio 2.0

PHP DevelStudio — наверное настоящая среда программирования, коия дозволяет творить exe програмки на языке PHP либо в отсутствии программирования, с поддержкою разных мастеров. Сейчас програмки разрешено творить на одном из самых узнаваемых и нетяжелых языков программирования PHP, правда правда, на котором сообщают веб-сайты. Для тех, кто ещё никак не может программировать, в среде есть большой комплект мастеров, для генерации кода програмки в автоматическом режиме. Пред новенькими раскрывается вероятность скоро выучиться программированию, а для разработчиков программного обеспечения — большие способности PHP с его огромным численностью расширений для работы с базами этих, архивами, вебом и почти всем иным, и основная вероятность — наверное творение GUI (интерфейса). Способности среды Творение windows программ с GUI интерфейсом (+скины) на языке PHP; Программирование в автоматическом режиме, которое дозволяет неизвестному с программированием человеку строчить програмки; Большущее численность составляющую для сотворения интерфейса и функциональности програмки; Вероятность увеличивать среду утилами, прописанными в лично ведь среде; Служба с базами этих (mysql, mssql и т.д); Служба с архивами, сокетами, вебом и т.д; Многопоточность, вероятность делать код в фоне; Скины для творимых программ; Сделанную програмку разрешено составить в Вотан exe файл, кой никак не станет спрашивать практически никаких добавлений, .NET фреймворков и т.п.

Характеристики

  • Размер 11.15 МБ
  • Версия 2.0
  • Стоимость Бесплатно для Windows
  • Разрядность
  • Совместимость Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Vista, Windows 7
  • Язык Русский
  • Дата обновления 21.03.2022
  • Разработчик

Похожее

Eclipse IDE 2021-09 R

Eclipse IDE 2021-09 R

Android Studio 2021.3.1.16

Android Studio 2021.3.1.16

ActiveState Komodo 12.0.1

ActiveState Komodo 12.0.1

Смотрят сейчас

PHP DevelStudio 2.0

SafeInCloud — Password Manager 21.1.6 + keygen

Almeza MultiSet Enterprise last

Источник: 3freesoft.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru