Комментарии

Веб-приложение Hello WWW
( 0 Голосов )

Это веб-приложение доступно в файле web/101-hello-www/index.php и выводит простое текстовое сообщение в окне браузера. Ниже приведена первая часть его исходного кода.

//  Это достоверная  точка  входа  в  Joomla! define (' JEXEC, ');
// задать константу, связанную с базовым путем к файлам
define('JPATH_BASE', dirname( FILE )); // довести уведомление об ошибках до любого количества отображаемых ошибок, но эти установки не должны использоваться в окончательном варианте error__reporting (E_ALL) ; ini_set('display_errors', true); // выполнить начальную загрузку приложения require dirname(dirname(dirname( FILE ))).'/bootstrap.php'; // импортировать класс JWeb с платформы jimport('joomla.application.web');

Как и прежде, в первой части исходного кода данного приложения определяются константы. В двух последующих строках уведомление об ошибках доводится до максимально возможного. Это полезно на стадии разработки для отладки любого кода, нарушающего строгие нормы языка РНР. Следует также заметить, что данная платформа предназначена для выполнения программ на РНР, начиная с версии 5.3. И в последних двух строках сначала включается файл bootstrap. php из корневой папки проекта, а затем из библиотеки импортируется файл libraries/application/web.php, в котором объявляется класс JWeb.

Ниже приведена остальная часть исходного кода данного веб-приложения из файла index.php.

class HelloWww extends JWeb
{
/**
* Переопределяет родительский метод doExecuteO для выполнения веб-приложения. В этот метод должен быть включен специальный код, выполняющий данное веб-приложение.
* @return void
* @since 11.3
*/ protected function doExecute () { // Это приложение лишь выводит простой HTML-документ. // Для подготовки к выводу используется метод setBody () . // Вывод всех заголовков и прочего возьмет на себя класс JWeb. $this->setBody(' Hello WWW

Hello WWW!

' ); } } //  получить  экземпляр  объекта  приложения,   передав имя  его  класса методу JWeb::getlnstance(),   а также воспользоваться  связыванием методов  в цепочку,   чтобы выполнить  приложение JWeb::getlnstance('Hellowww')->execute() ;

Сначала в завершающей части исходного кода рассматриваемого здесь приложения создается класс Hellowww, расширяющий класс JWeb. Большинство веб-приложений, разрабатываемых на платформе Joomla, расширяют класс JWeb. Затем создается защищенный метод doExecute (), переопределяющий одноименный метод из класса JWeb. Напомним, что в примере приложения командной строки Hello World был создан аналогичный метод execute (). И тот и другой метод может быть использован в пределах своего класса, но у них имеется одно существенное отличие. Если проанализировать исходный код метода execute () из класса JWeb, то можно обнаружить, что он инициирует события до и после вызова метода doExecute (), а затем воспроизводит документ, инициирует ряд других событий и наконец посылает запрос клиенту, опять же инициируя события до и после отправки запроса. Все эти действия обычно требуются для обработки HTML-документов, и поэтому целесообразнее переопределить метод doExecute (), предоставив методу execute () сделать все остальное.

В исходном коде метода doExecute () из класса JWeb вызывается метод setBody (), подготавливающий выводимое текстовое сообщение к выводу в формате HTML-документа. В состав класса JWeb входят различные методы для обработки заголовка и основного текста документа.

Последняя строка кода данного приложения похожа на аналогичную строку из предыдущего примера приложения. В ней сначала получается экземпляр объекта, а затем вызывается метод execute (). В конечном итоге текстовое сообщение выводится в HTML-документе, отображаемом в окне браузера.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости