- newproject
- |-- application
- | |-- Bootstrap.php
- | |-- configs
- | | `-- application.ini
- | |-- controllers
- | | |-- ErrorController.php
- | | `-- IndexController.php
- | |-- models
- | `-- views
- | |-- helpers
- | `-- scripts
- | |-- error
- | | `-- error.phtml
- | `-- index
- | `-- index.phtml
- |-- library
- |-- public
- | `-- index.php
- `-- tests
- |-- application
- | `-- bootstrap.php
- |-- library
- | `-- bootstrap.php
- `-- phpunit.xml
Programmer's Reference Guide
| Введение |
Zend_Application - Быстрый старт
Есть два пути для начала работы с Zend_Application и выбор одного из них зависит от того, как вы начинаете свой проект. В обоих случаях вы начинаете с создания класса Bootstrap и связанного с ним конфигурационного файла.
Если вы планируете использовать Zend_Tool для создания своего проекта, то продолжайте читать далее. Если вы добавляете Zend_Application на существующий проект, то можете сразу перейти к следующему разделу.
Использование вместе с Zend_Tool
Наиболее быстрый способ начать использование Zend_Application - использовать Zend_Tool для генерации вашего проекта. Он также создаст файл с классом Bootstrap.
Для того, чтобы создать проект, выполните команду zf на системе семейства *nix:
- % zf create project newproject
Или команду zf.bat на Windows:
- C:> zf.bat create project newproject
Обе создадут структуру проекта, которая будет выглядеть следующим образом:
В схеме выше ваш файл загрузки - newproject/application/Bootstrap.php, поначалу он будет выглядеть следующим образом:
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- }
Также обратите внимание, что был создан конфигурационный файл newproject/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
Все установки в конфигурационном файле предназначены для использования с Zend_Application и вашим файлом загрузки.
Еще один файл, на который стоит обратить внимание - newproject/public/index.php, он создает экземпляр Zend_Application и запускает приложение.
- // Указание пути к директории приложения
- // Определение текущего режима работы приложения
- : 'production'));
- /** Zend_Application */
- require_once 'Zend/Application.php';
- // Создание объекта приложения, начальная загрузка, запуск
- $application = new Zend_Application(
- APPLICATION_ENV,
- APPLICATION_PATH . '/configs/application.ini'
- );
- $application->bootstrap()
- ->run();
Для того, чтобы продолжить "быстрый старт", перейдите к разделу про ресурсы.
Добавление 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]
Замечание: Узнайте больше о 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, если это не было сделано ранее. Для начала хорошо подходит следующий макет (он также связан с ресурсом вида, описанным ниже):
Теперь вы должны иметь работающий макет.
Далее, мы добавим свой ресурс вида. При инициализации вида мы установим 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 и создания загрузки вашего приложения. С этого места вы должны перейти к созданию методов ресурсов, или, для максимального повторного использования, плагинов ресурсов. Читайте дальше, чтобы узнать больше!
| Введение |
