Статьи Новости Контакты

21.11.2006
Анатолий Крысов

PRADO — компоненты для PHP

обзор PRADO framework

PRADO

Итак, разговор о PRADO мы, пожалуй, начнем с расшифровки названия. За этой аббревиатурой из пяти букв скрывается достаточно хитро составленная фраза PHP Rapid Application Development Object-oriented. Что же представляет собой PRADO? Позволю себе повторить слова разработчиков описываемого продукта, которые уже цитировал в анонсе к материалу: "PRADO is component-based and event-driven framework for developing Web applications in PHP5". Основной же целью упомянутые разработчики называют "создание такого решения, которое бы позволяло работать с reusable-кодом для Веба по максимуму". Да, именно reusable-код считается одним из важнейших для эффективной работы моментов. Причем речь здесь идет не только о независимых кусках этого кода, которые мы вставляем в разные веб-приложения. PRADO идет дальше и предлагает своим пользователям философию разработки, построенную на базе компонентов, но об этом мы поговорим чуть позже.

А для начала хотелось бы добавить пару слов об истории продукта под названием PRADO. Все началось в 2004 году, когда Qiang Xue написал первую версию проекта, еще на PHP4. Со слов автора, вдохновение он черпал в Apache Tapesty, а многие идеи были взяты из Borland Delphi и Microsoft ASP.NET. Затем в рамках конкурса Zend PHP5 coding contest продукт PRADO был переписан в PHP5. К слову, на том конкурсе творение Qiang Xue заняло первое место, получив самые теплые отзывы как со стороны общественности, так и со стороны официального жюри. Впоследствии PRADO пережил несколько тотальных переделок, и в апреле 2006 года мир увидел третью версию этого продукта.

Описание

Итак, компонентный подход к разработке веб-приложений — это явление пусть и знакомое, но все же достаточно редкое. Более того, многие эксперты отзываются о PRADO не иначе как об уникальном продукте, а множество пользователей и слышать не хотят ни о чем другом, кроме PRADO. Однако мы попробуем разобраться, почему дела обстоят именно так позитивно.

Основной элемент в PRADO — это компоненты
Из отличительных особенностей разработки веб-приложений с PRADO стоит выделить следующие:

  • Reusability. Об этом пункте мы уже вскользь говорили во вступлении к материалу. Сама философия PRADO включает в себя, условно говоря, протоколы для создания компонентов и дальнейшей работы с ними. Из этих компонентов впоследствии и строятся веб-приложения. Кроме того, каждый компонент имеет свои методы, переменные и параметры.
  • Event-driven-программирование. Если коротко, то любое действие пользователя нашего веб-приложения (к примеру, нажатие определенной кнопки) расценивается движком как серверное событие, поэтому у разработчика отпадает ряд проблем, связанных с отслеживанием действий на клиентской стороне.
  • Разделение презентационного и логического слоев. Об этом говорят сегодня практически все авторы веб-проектов, но на деле оказывается, что упомянутые слои не всегда или не до конца разделены. А это очень важно, ибо позволяет сузить круг обязательных знаний того или иного члена команды, работающей над проектом.
  • Библиотека готовых компонентов. PRADO поставляется в комплекте со множеством готовых заранее и протестированных компонентов, которые способны решать многие из задач, с которыми веб-разработчики сталкиваются ежедневно. Таким образом, только на базе этих компонентов можно создавать полноценные и максимально интерактивные веб-приложения.
  • Поддержка AJAX. Взаимоотношения PRADO и AJAX — очень важный момент, который, думаю, способен склонить в сторону описываемого продукта еще большее количество разработчиков. Во-первых, в PRADO предусмотрена возможность полноценного использования AJAX-функционала в рамках компонентов и веб-приложений. А во-вторых, в PRADO уже встроены многие популярные и часто используемые AJAX-библиотеки, включая Prototype, script.aculo.us и Rico.

PRADO

К перечисленным выше преимуществам еще можно добавить полное соответствие генерируемых PRADO веб-страниц стандарту XHTML и возможность безболезненно использовать PRADO вместе с другими популярными продуктами. К примеру, для работы с базой данных мы можем применить AdoDB или Creole.

Применимость

Следующий вопрос, о котором хотелось бы поговорить в настоящем материале, это применимость PRADO в тех или иных ситуациях, ведь, как известно, далеко не каждое решение может быть успешно использовано в двух разных проектах. Сами создатели PRADO рекомендуют свой продукт тем специалистам, которые занимаются разработкой веб-приложений небольших или средних размеров. То есть для совсем крупных проектов герой сегодняшнего обзора подходит с трудом.

Дело тут вот в чем: при грамотной реализации действительно масштабных веб-приложений или сервисов важную роль играет функционал, отвечающий за кеширование контента. Хоть в PRADO они и есть, но многие специалисты, имевшие дело с этим продуктом, отмечают, что их уровень оставляет желать лучшего. В то же время на помощь всегда может прийти, к примеру, Zend optimizer. В любом случае при использовании PRADO в рамках крупного проекта тонкостей, требующих к себе внимания, становится значительно больше.

PRADO пропагандирует event-driven-программирование
К слову, сравнивать PRADO с другими frameworks или библиотеками для PHP-программистов сложно. В первую очередь потому, что этот продукт пропагандирует совсем другой подход к разработке веб-приложений. В процессе сбора информации для статьи мне не раз и не два приходилось сталкиваться с таким определением для PRADO: высокоуровневый язык, стоящий над простым PHP. В некотором роде это правда: PRADO является технологией, значительно превосходящей по своим возможностям обычную framework.

Практика

Разбираться с тем, как работает PRADO, мы будем на простейшем примере, в рамках которого создадим веб-приложение с одной кнопкой, при нажатии на которую страница будет перезагружаться с той же самой кнопкой, но уже с новым текстом. Решить такую задачу можно несколькими способами. В PRADO есть объект TButton, который и реализует объект кнопки. У него есть параметр Text (текст кнопки), и с ним можно связать событие OnClick (нажатие пользователем на кнопку). Именно в рамках этих знаний мы и будем действовать.

PRADO

Но для начала разберемся с тем, как в PRADO следует организовывать файлы. Каждое веб-приложение здесь состоит из нескольких файлов, которые хранятся в различных папках согласно их назначению. В нашем случае мы создаем папку test, в которой затем создаем еще несколько папок: assets, protected, protected/pages, protected/runtime.

Рассмотрим назначение каждой из папок:

  • assets — в этой папке хранятся файлы, необходимые для работы веб-приложения и не являющиеся кодом; к примеру, изображения, звуки, видеофайлы или CSS-файлы;
  • protected — здесь хранятся файлы с данными, необходимыми для работы веб-приложения, и файлы со скриптами;
  • protected/runtime — в этой папке создаются и хранятся файлы с runtime-данными, необходимыми для работы веб-приложения (например, кешированные данные и т. д.);
  • protected/pages — здесь хранятся все страницы, относящиеся к веб-приложению.

Затем нам потребуется создать еще три файла: index.php (в корневой папке), Home.page и Home.php (в папке protected/pages). Все, больше для нашего маленького примера файлов или папок не понадобится. Теперь осталось лишь рассказать о том, за что каждый из файлов отвечает, и добавить весь необходимый код.

index.php

Это главный и управляющий скрипт всего веб-приложения, разработанного с помощью PRADO. Иными словами, он требуется всегда для корректного исполнения проекта и к тому же является единственным файлом, доступным конечному пользователю напрямую. Как правило, содержимое index.php в веб-приложениях на PRADO состоит из следующих трех строк.

require_once('path/to/prado.php');  //  добавляем  базовый  скрипт  PRADO  
$application  =  new  TApplication;        //  создаем  PRADO  application  instance  
$application->run();                                          //  запускаем  PRADO  application

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

Home.page

Любое веб-приложение в PRADO должно иметь свою базовую страницу с именем Home, а файл с расширением .page является шаблоном для этой страницы. Вообще же шаблоны в PRADO определяют презентационный слой наших приложений и компонентов. То есть внутри этих файлов мы описываем с помощью языка HTML и специальных тегов разметку той или иной страницы.

<html>  
    <body>  
        <com:TForm>  
            <com:TButton  Text="Нажимать  здесь"  OnClick="buttonClicked"  />  
        </com:TForm>  
    </body>  
</html>

Как видно из примера, мы использовали два специальных тега: com:TForm и com:TButton. Они сообщают движку PRADO, что на страницу надо добавить элементы формы и кнопки. Думаю, тут все просто и понятно даже новичку.

Home.php

Последний файл в нашем примере. В нем мы описываем класс для страницы Home. Если же говорить в общем, то подобные файлы содержат методы, отвечающие за логику наших приложений или компонентов. Для настоящего материала у нас в файле Home.php есть лишь один метод, отвечающий за событие OnClick у кнопки на странице.

class  Home  extends  TPage  
{  
  public  function  buttonClicked($sender,  $param)  
  {  
    $sender->Text  =  "Кнопка  была  нажата!";  
  }  
}

PRADO

И здесь ничего сложного нет. Наш класс Home строится на базе класса TPage, который отвечает в PRADO за страницы. Единственная функция buttonClicked меняет текст кнопки при перезагрузке страницы на "Кнопка была нажата!". Стоит обратить внимание на объект $sender, который является ссылкой на элемент страницы, который вызвал функцию.

PRADO поставляется со множеством готовых компонентов
На этом пример заканчивается, ибо у нас получилось полностью готовое веб-приложение, которое при желании можно разместить на сервере и запустить. Разумеется, его масштаб не сравнится с более-менее комплексными проектами, но, для того чтобы понять схему разработки, такого объема вполне достаточно. Единственное, о чем хотелось бы напомнить, это встроенные в PRADO компоненты. Их много, и они решают очень широкий спектр задач: к примеру, paging, сортировка данных или работа с комментариями. Причем работать с ними немногим сложнее, чем в нашем примере.

Итог

К сожалению, рассказать о каждой возможности PRADO детально в рамках настоящей статьи просто невозможно. Этот продукт обладает поистине громадным потенциалом, особенно если будет использоваться умело и уместно. Однако стоит отметить, что PRADO не является готовым решением, которое можно установить и сразу приступить к наполнению веб-сайта контентом. Иными словами, PRADO — это framework, а не система управления контентом.

Ссылки по теме




Скоро на сайте

  • Wordpress

    Серия статей о плагинах к движку WordPrress
  • AJAX

    Проекты и продукты, ориентированные на AJAX
  • Новые сервисы Google

    Обзор новых сервисов Google
 

Copyright © 2003—2018 Все права защищены

При использовании материалов сайта ссылка на hostinfo.ru обязательна

  • хостинг от .masterhost
  • Rambler's Top100