Основы работы с классом Zend.Controller

Поскольку библиотека Zend Framework уже установлена, возможно обращение к этому классу. В этом раз­деле будут изучаться основы работы с данным классом.

Прежде всего создадим файл index.php в каталоге ./htdocs (в него перена­правляются запросы с помощью mod rewrite). Этот файл находится в центре всего нашего веб-сайта. Каждый запрос пользователя будет обрабатываться именно этим файлом (кроме запросов к таким файлам, как таблицы стилей CSS и изобра­жения). Таким образом, файл index. php является загрузочным (стартовым) фай­лом приложения.

Примечание

Здесь и далее символ . / обозначает путь /var/www/phpweb2 0. Например, если нужно сослаться на файл /var/www/phpweb20/htdocs/index.php, далее будем писать . /htdocs/index.php.

Все. что необходимо сделать загрузочному файлу, — это загрузить и инициали­зировать класс Zend_Controller_Front, затем вызвать метод dispatchO, кото­рый в свою очередь обратится к коду, необходимом}’ для обработки запроса. Обра­тите внимание на то, что разрешается существование только одного экземпляра класса Zend_Controller_Front. Вот почему для создания этого экземпляра ис­пользуется метод get Instance (). В листинге 2.4 показано содержимое файла in­dex.php.

Листинг 2.4. Обработка пользовательских запросов методами класса zend controller (файл index.php)

<?php

require_once(1 Zend/Loader.php"); Zend_Loader::registerAutoload();

$controller = Zend_Controller_Front::getlnstance() ; $controller->setControllerDirectory (' . ./include/Controllers') ; $controller->dispatch();

?>

Для автоматической загрузки классов библиотеки Zend Framework будем ис­пользовать метод registerAutoload () из класса Zend Loader. Если поступать именно так, то для любого используемого класса Zend Framework, за исключением Zend_Loader, нет необходимости применять функцию require__once ().

Примечание

Если вы решите использовать библиотеку Zend Framework в любом другом приложении, где уже включена ав­тозагрузка классов РНР, то вам необходимо будет либо внести изменения в автозагрузчик, либо включить библиотечные файлы вручную. Имена нужных файлов легко получить из имен классов, заменив знак подчерки­вания косой чертой и добавив расширение .php. Например, класс Zend_Controller_Front можно включить ВЫЗОВОМ require__once (1 Zend/Controller/Front .php1 ).