Zend_Application - Быстрый старт
Есть два пути для начала работы с
Zend_Application и выбор одного из них зависит
от того, как вы начинаете свой проект.
В обоих случаях вы начинаете с создания класса
Bootstrap и связанного с ним конфигурационного
файла.
Если вы планируете использовать Zend_Tool для
создания своего проекта, то продолжайте читать далее. Если вы добавляете
Zend_Application на существующий проект,
то можете сразу перейти
к следующему разделу.
Добавление Zend_Application в приложение
Основные положения работы с Zend_Application
довольно просты:
Создайте файл application/Bootstrap.php
с классом Bootstrap.
Создайте конфигурационный файл
application/configs/application.ini
с базовой конфигурацией, необходимой для
Zend_Application.
Измените свой файл public/index.php
с тем, чтобы использовался
Zend_Application.
Сначала создайте свой загрузочный класс Bootstrap.
Для этого создайте файл
application/Bootstrap.php со следующим
содержимым:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}
Теперь создайте свою конфигурацию. В примерах мы будем
использовать конфигурацию в формате INI
(разумеется, для своего приложения вы можете использовать
другой формат - XML или PHP).
Создайте файл
application/configs/application.ini и добавьте
в него следующее:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
Наконец, приступаем к изменению скрипта
public/index.php. Если он не существует,
то создайте его, иначе замените его содержимое на следующее:
// Указание пути к директории приложения
// Определение текущего режима работы приложения
: 'production'));
// Обычно требуется также добавить директорию library/
// в include_path, особенно если она содержит инсталляцию ZF
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Создание объекта приложения, начальная загрузка, запуск
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
Вы можете заметить, что при установке значения константы режима
работы проверяется значение переменной окружения "APPLICATION_ENV".
Мы рекомендуем устанавливать ее в своем окружении веб-сервера.
В Apache вы можете установить ее либо в своем определении
виртуального хоста, либо в своем файле
.htaccess. Мы рекомендуем использовать
следующее содержимое для вашего
файла public/.htaccess:
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Note: Узнайте больше о mod_rewrite
Приведенные выше правила перезаписи позволяют получить
доступ к любому файлу в корневой для веб-документов
директории вашего виртуального хоста. Если
в ней есть файлы, которые нужно скрыть от посторонних глаз,
то вы наверное захотите установить более строгие правила.
Перейдите на сайт Apache, чтобы
» узнать больше о mod_rewrite.
Теперь вы готовы начать использование
Zend_Application.
Добавление и создание ресурсов
Если вы следовали инструкциям, приведенным выше, то ваш
загрузочный класс должен использовать фронт-контроллер,
и когда загрузка запускается, то управление будет передаваться
фронт-контроллеру.
В этом разделе мы рассмотрим добавление двух ресурсов
в ваше приложение. Сначала мы установим макет и затем
настроим ваш объект вида.
Одним из стандартных ресурсов, предоставляемых компонентой
Zend_Application, является ресурс "layout".
Этот ресурс ожидает, что вы определите значения конфигурации,
которые затем будут использоваться для конфигурирования
вашего экземпляра Zend_Layout.
Все, что нужно сделать для этого, - обновить конфигурационный
файл.
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
; ADD THE FOLLOWING LINES
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
Создайте директорию
application/layouts/scripts/ и файл в ней
layout.phtml, если это не было сделано ранее.
Для начала хорошо подходит следующий макет (он также связан
с ресурсом вида, описанным ниже):
<?php echo $this->
doctype() ?>
<html>
<head>
<?php echo $this->
headTitle() ?>
<?php echo $this->
headLink() ?>
<?php echo $this->
headStyle() ?>
<?php echo $this->
headScript() ?>
</head>
<body>
<?php echo $this->
layout()->
content ?>
</body>
</html>
Теперь вы должны иметь работающий макет.
Далее, мы добавим свой ресурс вида. При инициализации вида
мы установим HTML DocType и значение по
умолчанию для заголовка, используемого в
<head> HTML-документа.
Это может быть достигнуто добавлением метода в класс
Bootstrap:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initView()
{
// Инициализация вида
$view = new Zend_View();
$view->doctype('XHTML1_STRICT');
$view->headTitle('My First Zend Framework Application');
// Добавление вида в ViewRenderer
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
'ViewRenderer'
);
$viewRenderer->setView($view);
// Его возвращение, таким образом, он может быть сохранен загрузчиком
return $view;
}
}
Этот метод будет автоматически выполняться при запуске
приложения и он будет обеспечивать инициализацию вашего вида в
соответствии с нуждами вашего приложения.
Следующие шаги с Zend_Application
Все написанное выше должно научить вас основам использования
Zend_Application и создания загрузки вашего
приложения. С этого места вы должны перейти к созданию методов
ресурсов, или, для максимального повторного использования,
плагинов ресурсов.
Читайте дальше, чтобы узнать больше!