В категории: CMS/CMF

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

обзор PRADO framework

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

Итак, разговор о 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 стоит выделить следующие:

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

К перечисленным выше преимуществам еще можно добавить полное соответствие генерируемых 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 — компоненты для PHP

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

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

Затем нам потребуется создать еще три файла: 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 — компоненты для PHP

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

PRADO поставляется со множеством готовых компонентов

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

Итог

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

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

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

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

-