Быстрая разработка веб-приложений на CodeGear Delphi for PHP
Введение
Разработчики, использующие продукты Borland, уже наверняка знают, что весной этого года была основана компания CodeGear, и все столь знакомые средства разработки, как Delphi, C++ Builder, JBuilder и прочие были переданы под ее крыло. Основной смысл такой передачи заключался в том, что теперь финансовые потоки от продаж средств разработки будут реинвестироваться в бизнес CodeGear, а не тратиться на развитие ALM-технологий Borland, как это происходило последние пару лет. Подобный поворот событий может означать увеличение активности в разработке RAD-средств. И это уже происходит – через несколько месяцев после своего фактического появления на рынке CodeGear анонсировала совершенно новый продукт, визуальную среду разработки на базе языка PHP – Delphi for PHP!
Почему Delphi?
Для определенной части программистов, привыкших понимать под словом «Delphi» не столько среду разработки, сколько язык программирования Object Pascal, теперь есть повод для недоумения – как может быть Delphi for PHP? Однако CodeGear подчеркивает, что Delphi для своих создателей означает не язык и даже не конкретную среду разработки, а набор принципов разработки приложений, заложенных еще в Delphi 1. В своем блоге Дэвид Интерсимон, в частности, пишет: «Delphi – это название для продукта, который предлагает RAD-технологию, визуальную разработку, а также набор визуальных и невизуальных компонентов. Delphi – это способ программирования вне зависимости от языка программирования, который вы используете в среде».
Именно поэтому, когда мы видим название Delphi for PHP, мы ожидаем, что нам предложат не просто некий аналог Dreamweaver для PHP, а действительно средство быстрой разработки на базе компонентного подхода.
Ожидания оправдываются
Скорость, взятая на старте CodeGear, внушает уважение. Новый продукт действительно предлагает визуальную разработку, целый набор готовых компонентов с поддержкой AJAX, при этом вы сможете работать непосредственно с кодом PHP безо всяких промежуточных прослоек и преобразований! Для работы готового приложения вам не потребуется устанавливать на хостинг какие-то специфические драйвера или ретрансляторы кода. Вы будете писать на PHP, но при этом использовать визуальные компоненты со свойствами и событиями.
AJAX – теперь это просто.
Создадим новое приложение и разместим на форме три компонента, взятые из Tool Palette:
Именно в палитре компонентов вы можете выбрать готовые компоненты от простых кнопок, до визуальных средств редактирования данных в базах данных. Вы можете настраивать свойства компонентов, размещенных на форме:
в Object Inspector. Например, мы можем задать заголовок для Label1:
Важной особенностью подхода, принятого в RAD-средствах, является интерактивность приложения. Иными словами, при разработке программ вы создаете обработчики тех или иных действий пользователя, что, фактически, и означает работу с приложением. Пользователь ждем на кнопку, а программа что-то делает.
При обычном программировании на PHP вы бы разработали скрипт, который формировал бы html-форму с какими-то полями, а также создали бы обработчик этой формы, который обработал бы полученные от пользователя данные и что-то сделал в ответ. Каждый шаг взаимодействия с пользователем при такой схеме означает постоянную перезагрузку страниц в браузере. Применение AJAX уже делает приложения более интерактивными, позволяя обмениваться данными между страницей браузера и отдельными PHP-файлами, находящимися на стороне сервера. Но разработка AJAX-приложений до сих пор была достаточно трудоемким делом.
Delphi for PHP делает это виртуозно, причем вам зачастую даже не приходится думать об AJAX – вы получаете эту технологию в одном флаконе с компонентами VCL for PHP. Выбираем кнопку Button1 на форме, переходим на закладку Events в Object Inspector, выбираем событие OnClick и делаем двойной щелчок:
Среда тут же создаст для нас обработчик события (Button1Click):
в котором мы можем написать нужный нам код. Из рисунка выше видно, что мы хотим задать заголовок Label1 равным текущему значению поля редактирования Edit1. Просто, не так ли?
Остается запустить приложение. В открывшемся браузере мы видим нашу форму:
Изменим текст в поле редактирования:
Нажатие на кнопку «Применить» вызовет наш обработчик при помощи AJAX и мы увидим изменение формы без перезагрузки текущей страницы:
Подводная часть айсберга
Может показаться, что пример выше не особенно демонстрирует силу, заложенную в Delphi for PHP. В конце концов, программы а-ля «Hello, world!» писать легко на любом языке и в любом средстве разработки. Тем не менее, оказывается, что и намного более сложные вещи в целом реализованы также просто. Работа с базами данных сделана на основе невизуальных компонентов Database, Query и DataSource, и почти все визуальные компоненты могут автоматически получать данные, подключившись к DataSource. В состав VCL for PHP входит даже DBGrid, который визуально позволяет в браузере показывать и редактировать данные!
Набор готовых компонентов, удобная работа с базами данных, простая парадигма использования AJAX в виде обработчиков событий, встроенный отладчик кода, возможность разработки и подключения своих PHP-компонентов, поддержка известных «шаблонизаторов» вроде Smarty – все это делает Delphi for PHP действительно революционным продуктом для PHP. В целом от работы с новым продуктом CodeGear возникает ощущение, что каменный век в PHP закончился и возникает только один вопрос: «Почему этого не было сделано намного раньше?!».
Можно сказать, что скорость разработки веб-приложений наверняка вырастет в несколько раз, и вероятность массового появления сайтов, к которым можно будет применить модный нынче термин Web 2.0 становится вполне реальной.