Введение

Zend_Application - Быстрый старт

Есть два пути для начала работы с Zend_Application и выбор одного из них зависит от того, как вы начинаете свой проект. В обоих случаях вы начинаете с создания класса Bootstrap и связанного с ним конфигурационного файла.

Если вы планируете использовать Zend_Tool для создания своего проекта, то продолжайте читать далее. Если вы добавляете Zend_Application на существующий проект, то можете сразу перейти к следующему разделу.

Использование вместе с Zend_Tool

Наиболее быстрый способ начать использование Zend_Application - использовать Zend_Tool для генерации вашего проекта. Он также создаст файл с классом Bootstrap.

Для того, чтобы создать проект, выполните команду zf на системе семейства *nix:

  1. % zf create project newproject

Или команду zf.bat на Windows:

  1. C:> zf.bat create project newproject

Обе создадут структуру проекта, которая будет выглядеть следующим образом:

  1. newproject
  2. |-- application
  3. |   |-- Bootstrap.php
  4. |   |-- configs
  5. |   |   `-- application.ini
  6. |   |-- controllers
  7. |   |   |-- ErrorController.php
  8. |   |   `-- IndexController.php
  9. |   |-- models
  10. |   `-- views
  11. |       |-- helpers
  12. |       `-- scripts
  13. |           |-- error
  14. |           |   `-- error.phtml
  15. |           `-- index
  16. |               `-- index.phtml
  17. |-- library
  18. |-- public
  19. |   `-- index.php
  20. `-- tests
  21.     |-- application
  22.     |   `-- bootstrap.php
  23.     |-- library
  24.     |   `-- bootstrap.php
  25.     `-- phpunit.xml

В схеме выше ваш файл загрузки - newproject/application/Bootstrap.php, поначалу он будет выглядеть следующим образом:

  1.  

Также обратите внимание, что был создан конфигурационный файл newproject/application/configs/application.ini. Его содержимое будет следующим:

  1. [production]
  2. phpSettings.display_startup_errors = 0
  3. phpSettings.display_errors = 0
  4. includePaths.library = APPLICATION_PATH "/../library"
  5. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  6. bootstrap.class = "Bootstrap"
  7. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  8.  
  9. [staging : production]
  10.  
  11. [testing : production]
  12. phpSettings.display_startup_errors = 1
  13. phpSettings.display_errors = 1
  14.  
  15. [development : production]
  16. phpSettings.display_startup_errors = 1
  17. phpSettings.display_errors = 1

Все установки в конфигурационном файле предназначены для использования с Zend_Application и вашим файлом загрузки.

Еще один файл, на который стоит обратить внимание - newproject/public/index.php, он создает экземпляр Zend_Application и запускает приложение.

  1. // Указание пути к директории приложения
  2. 'APPLICATION_PATH''APPLICATION_PATH''/../application'));
  3.  
  4. // Определение текущего режима работы приложения
  5. 'APPLICATION_ENV''APPLICATION_ENV''APPLICATION_ENV''APPLICATION_ENV')
  6.                                          : 'production'));
  7.  
  8. /** Zend_Application */'Zend/Application.php';
  9.  
  10. // Создание объекта приложения, начальная загрузка, запуск
  11. '/configs/application.ini'
  12. );
  13. $application->bootstrap()
  14.             ->run();

Для того, чтобы продолжить "быстрый старт", перейдите к разделу про ресурсы.

Добавление Zend_Application в приложение

Основные положения работы с Zend_Application довольно просты:

  • Создайте файл application/Bootstrap.php с классом Bootstrap.

  • Создайте конфигурационный файл application/configs/application.ini с базовой конфигурацией, необходимой для Zend_Application.

  • Измените свой файл public/index.php с тем, чтобы использовался Zend_Application.

Сначала создайте свой загрузочный класс Bootstrap. Для этого создайте файл application/Bootstrap.php со следующим содержимым:

  1.  

Теперь создайте свою конфигурацию. В примерах мы будем использовать конфигурацию в формате INI (разумеется, для своего приложения вы можете использовать другой формат - XML или PHP). Создайте файл application/configs/application.ini и добавьте в него следующее:

  1. [production]
  2. phpSettings.display_startup_errors = 0
  3. phpSettings.display_errors = 0
  4. includePaths.library = APPLICATION_PATH "/../library"
  5. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  6. bootstrap.class = "Bootstrap"
  7. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  8.  
  9. [staging : production]
  10.  
  11. [testing : production]
  12. phpSettings.display_startup_errors = 1
  13. phpSettings.display_errors = 1
  14.  
  15. [development : production]
  16. phpSettings.display_startup_errors = 1
  17. phpSettings.display_errors = 1

Наконец, приступаем к изменению скрипта public/index.php. Если он не существует, то создайте его, иначе замените его содержимое на следующее:

  1. // Указание пути к директории приложения
  2. 'APPLICATION_PATH''APPLICATION_PATH''/../application'));
  3.  
  4. // Определение текущего режима работы приложения
  5. 'APPLICATION_ENV''APPLICATION_ENV''APPLICATION_ENV''APPLICATION_ENV')
  6.                                          : 'production'));
  7.  
  8. // Обычно требуется также добавить директорию library/
  9. // в include_path, особенно если она содержит инсталляцию ZF
  10. '/library'/** Zend_Application */'Zend/Application.php';
  11.  
  12. // Создание объекта приложения, начальная загрузка, запуск
  13. '/configs/application.ini'
  14. );
  15. $application->bootstrap()
  16.             ->run();

Вы можете заметить, что при установке значения константы режима работы проверяется значение переменной окружения "APPLICATION_ENV". Мы рекомендуем устанавливать ее в своем окружении веб-сервера. В Apache вы можете установить ее либо в своем определении виртуального хоста, либо в своем файле .htaccess. Мы рекомендуем использовать следующее содержимое для вашего файла public/.htaccess:

  1. SetEnv APPLICATION_ENV development
  2.  
  3. RewriteEngine On
  4. RewriteCond %{REQUEST_FILENAME} -s [OR]
  5. RewriteCond %{REQUEST_FILENAME} -l [OR]
  6. RewriteCond %{REQUEST_FILENAME} -d
  7. RewriteRule ^.*$ - [NC,L]
  8. RewriteRule ^.*$ index.php [NC,L]

Note: Узнайте больше о mod_rewrite
Приведенные выше правила перезаписи позволяют получить доступ к любому файлу в корневой для веб-документов директории вашего виртуального хоста. Если в ней есть файлы, которые нужно скрыть от посторонних глаз, то вы наверное захотите установить более строгие правила. Перейдите на сайт Apache, чтобы » узнать больше о mod_rewrite.

Теперь вы готовы начать использование Zend_Application.

Добавление и создание ресурсов

Если вы следовали инструкциям, приведенным выше, то ваш загрузочный класс должен использовать фронт-контроллер, и когда загрузка запускается, то управление будет передаваться фронт-контроллеру.

В этом разделе мы рассмотрим добавление двух ресурсов в ваше приложение. Сначала мы установим макет и затем настроим ваш объект вида.

Одним из стандартных ресурсов, предоставляемых компонентой Zend_Application, является ресурс "layout". Этот ресурс ожидает, что вы определите значения конфигурации, которые затем будут использоваться для конфигурирования вашего экземпляра Zend_Layout.

Все, что нужно сделать для этого, - обновить конфигурационный файл.

  1. [production]
  2. phpSettings.display_startup_errors = 0
  3. phpSettings.display_errors = 0
  4. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  5. bootstrap.class = "Bootstrap"
  6. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  7. ; ADD THE FOLLOWING LINES
  8. resources.layout.layout = "layout"
  9. resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
  10.  
  11. [staging : production]
  12.  
  13. [testing : production]
  14. phpSettings.display_startup_errors = 1
  15. phpSettings.display_errors = 1
  16.  
  17. [development : production]
  18. phpSettings.display_startup_errors = 1
  19. phpSettings.display_errors = 1

Создайте директорию application/layouts/scripts/ и файл в ней layout.phtml, если это не было сделано ранее. Для начала хорошо подходит следующий макет (он также связан с ресурсом вида, описанным ниже):

  1.  

Теперь вы должны иметь работающий макет.

Далее, мы добавим свой ресурс вида. При инициализации вида мы установим HTML DocType и значение по умолчанию для заголовка, используемого в <head> HTML-документа. Это может быть достигнуто добавлением метода в класс Bootstrap:

  1. span style="color: #808080; font-style: italic;">// Инициализация вида
  2. 'XHTML1_STRICT');
  3.         $view->headTitle('My First Zend Framework Application');
  4.  
  5.         // Добавление вида в ViewRenderer
  6. 'ViewRenderer'// Его возвращение, таким образом, он может быть сохранен загрузчиком

Этот метод будет автоматически выполняться при запуске приложения и он будет обеспечивать инициализацию вашего вида в соответствии с нуждами вашего приложения.

Следующие шаги с Zend_Application

Все написанное выше должно научить вас основам использования Zend_Application и создания загрузки вашего приложения. С этого места вы должны перейти к созданию методов ресурсов, или, для максимального повторного использования, плагинов ресурсов. Читайте дальше, чтобы узнать больше!


Введение