Взято с русского сообщества zend.
Автор: san, rashad
http://zendframework.ru/articles/zend_framework_start
Итак начнём. Для начала скачиваем последний стабильный релиз фреймворка.
В нашем случае document root это папка public. Остальные файлы вынесены с целью защиты от получения доступа к ним. (По желанию вы можете этого не делать, а разместить все ваши файлы внутри document root)
В архиве с фреймворком находим папку library/Zend , это и есть сердце нашего фреймворка, копируем эту папку в созданную папку libs
У вас должна получиться следующая структура директорий:

Файл public/.htaccess содержит следующий код:
Возможно вас удивит что тег <?php не закрыт?. Таков стандарт кодирования Zend Framework. И действительно после непродолжительной практики вы убедитесь что данный подход позволяет перестраховаться от некоторых ошибок, кроме этого мы сэкономим время и место :)
Теперь перейдем к самому интересному к модели MVC
До того, как начать обсуждение контроллеров действий, нужно сначала понять, как обрабатываются запросы в Zend Framework. По умолчанию первая часть пути в URL соответствует контроллеру, а вторая - действию. Например, дан URL http://ilovezf/news/show. В нем путь /news/show будет соответствовать контроллеру news и действию show. Если не передано имя действия, то предполагается действие index; если не передано имя контроллера, то предполагается контроллер index (по соглашению Apache это соответствует DirectoryIndex).
Диспетчер Zend_Controller принимает значение контроллера и находит соответствующий ему класс. По умолчанию это имя контроллера, начинающееся с заглавной буквы и со словом Controller в конце. Таким образом, контроллер news будет соответствовать классу NewsController.
Аналогичным образом устанавливается соответствие значения действия методу класса контроллера. По умолчанию значение приводится к нижнему регистру и к нему присоединяется слово Action. Таким образом, в нашем примере выше действие show будет методом с именем ShowAction, и в итоге вызов метода будет выглядеть следующим образом: NewsController::showAction().
Итак, двигаемся дальше. Теперь приступим к созданию контроллера и действия, используемых по умолчанию. Как было замечено ранее, эти контроллер и действие должны оба называться index. Откройте файл application/controllers/IndexController.php и введите следующее:
По умолчанию в Zend_Framework в качестве представления используется Zend_View. Каким образом определенной странице ставится в соответствие определенный шаблон? – очень просто. Если запрошен контроллер index и действие index (что произойдет при открытии страницы http://ilovezf) то будет отображен шаблон views/scripts/index/index.phtml. По аналогии для url http://ilovezf/news/show будет отображен шаблон application/views/scripts/news/show.phtml, конечно только в том случае если он существует. По умолчанию шаблоны имеют расширение .phtml. Zend Framework поддерживает возможность использования других систем отображения представления, в частности шаблонизатора Smarty, об этом будет рассказано в наших следующих статьях.
Файл application/views/scripts/index/index.phtml. содержит следующий код:
И последнее, нам необходимо создать свой контроллер ошибок. По умолчанию Zend Framework ожидает что имеется контроллер ErrorController с методом errorAction. Создадим этот файл
Код файла application/controllers/ErrorController.php
Автор: san, rashad
http://zendframework.ru/articles/zend_framework_start
Итак начнём. Для начала скачиваем последний стабильный релиз фреймворка.
В идеале создаем отдельный виртуальный хост на котором мы и будем проводить наши эксперименты. Мы назвали его ilovezf :), то есть наш сайт будет доступен по адресу http://ilovezf, но подойдет и просто стандартный document root.
Создаем следующую структуру директорий и необходимые файлы.
Создаем следующую структуру директорий и необходимые файлы.
| applications/ | Собственно, папка с самим приложением |
| controllers/ | Здесь хранятся контроллеры |
| IndexController.php | Контроллер по умолчанию или индекс-контролле |
| models/ | Модели |
| views/ | Представления |
| scripts/ | |
| index/ | Представления для индекс - контроллера |
| index.phtml | Представление для action (действие) по умолчанию (indexAction) |
| error/ | Представления для контроллера ошибок |
| index.phtml | Представление для действия по умолчанию (indexAction) |
| libs | Cодержит папку Zend в котором находиться сам фреймворк |
| public/ | Папка с файлами с общим доступом |
| img/ | Различные графические обьекты |
| js/ | Javascript – скрипты |
| css/ | Таблицы каскадных стилей (css) |
| .htaccess | Файл настройки вебсервера |
| index.php | Точка входа |
В нашем случае document root это папка public. Остальные файлы вынесены с целью защиты от получения доступа к ним. (По желанию вы можете этого не делать, а разместить все ваши файлы внутри document root)
В архиве с фреймворком находим папку library/Zend , это и есть сердце нашего фреймворка, копируем эту папку в созданную папку libs
У вас должна получиться следующая структура директорий:
Файл public/.htaccess содержит следующий код:
RewriteEngine on
RewriteBase /
RewriteRule .*$ index.php [L]
RewriteBase /
RewriteRule .*$ index.php [L]
С помощью модуля apache mod_rewrite (механизм перенаправления входящих запросов), осуществляется перенаправление всех запросов к index.php. Если модуль mod_rewrite у вас не установлен или не работает - переходя по ссылкам вы будете получать ошибку 404. Будьте внимательны.
Файл index.php будет служить точкой входа в наше приложение.
Код файла public/index.php
Код файла public/index.php
<?php
set_include_path('z://home/ilovezf/libs'); // укажите физический путь к папке libsrequire_once 'Zend/Controller/Front.php';Zend_Controller_Front::run('../applications/controllers/'); // физический путь к папке с контроллерамиВозможно вас удивит что тег <?php не закрыт?. Таков стандарт кодирования Zend Framework. И действительно после непродолжительной практики вы убедитесь что данный подход позволяет перестраховаться от некоторых ошибок, кроме этого мы сэкономим время и место :)
Теперь перейдем к самому интересному к модели MVC
До того, как начать обсуждение контроллеров действий, нужно сначала понять, как обрабатываются запросы в Zend Framework. По умолчанию первая часть пути в URL соответствует контроллеру, а вторая - действию. Например, дан URL http://ilovezf/news/show. В нем путь /news/show будет соответствовать контроллеру news и действию show. Если не передано имя действия, то предполагается действие index; если не передано имя контроллера, то предполагается контроллер index (по соглашению Apache это соответствует DirectoryIndex).
Диспетчер Zend_Controller принимает значение контроллера и находит соответствующий ему класс. По умолчанию это имя контроллера, начинающееся с заглавной буквы и со словом Controller в конце. Таким образом, контроллер news будет соответствовать классу NewsController.
Аналогичным образом устанавливается соответствие значения действия методу класса контроллера. По умолчанию значение приводится к нижнему регистру и к нему присоединяется слово Action. Таким образом, в нашем примере выше действие show будет методом с именем ShowAction, и в итоге вызов метода будет выглядеть следующим образом: NewsController::showAction().
Итак, двигаемся дальше. Теперь приступим к созданию контроллера и действия, используемых по умолчанию. Как было замечено ранее, эти контроллер и действие должны оба называться index. Откройте файл application/controllers/IndexController.php и введите следующее:
<?php require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action {
public function indexAction() {
}
}По умолчанию в Zend_Framework в качестве представления используется Zend_View. Каким образом определенной странице ставится в соответствие определенный шаблон? – очень просто. Если запрошен контроллер index и действие index (что произойдет при открытии страницы http://ilovezf) то будет отображен шаблон views/scripts/index/index.phtml. По аналогии для url http://ilovezf/news/show будет отображен шаблон application/views/scripts/news/show.phtml, конечно только в том случае если он существует. По умолчанию шаблоны имеют расширение .phtml. Zend Framework поддерживает возможность использования других систем отображения представления, в частности шаблонизатора Smarty, об этом будет рассказано в наших следующих статьях.
Файл application/views/scripts/index/index.phtml. содержит следующий код:
(Замечание: Первая строчка кода должна идти одной цельной строкой, ниже она разбита лишь для красоты отображения)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru" id="html">
<head>
<title>I LOVE ZEND FRAMEWORK!</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
I LOVE ZEND FRAMEWORK!
</body>
</html>И последнее, нам необходимо создать свой контроллер ошибок. По умолчанию Zend Framework ожидает что имеется контроллер ErrorController с методом errorAction. Создадим этот файл
Код файла application/controllers/ErrorController.php
<?php require_once 'Zend/Controller/Action.php';
class ErrorController extends Zend_Controller_Action {
public function errorAction() {
}
}
Для отображения сообщений о ошибке создадим файл отвечающий за представление
Код файла application/views/scripts/error/error.phtml
Код файла application/views/scripts/error/error.phtml
(Замечание: Первая строчка кода должна идти одной цельной строкой, ниже она разбита лишь для красоты отображения)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru" id="html">
<head>
<title>I LOVE ZEND FRAMEWORK!</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
Some error happened!
</body>
</html>
Теперь мы можем насладиться результатом нашей работы, он доступен по адресу http://ilovezf/, кроме этого он также доступен по адресу http://ilovezf/index и http://ilovezf/index/index.
Если вы все сделали правильно вы должны увидеть надпись "I LOVE ZEND FRAMEWORK!" В противном случае сработает обработчик ошибок, и вы увидете сообщение "Some error happened!"
К сожалению, в данной статье мы не затронули такую важную часть MVC как модель, в следующих статьях мы напишем об этом.
Поздравляем, вы создали ваш первый сайт с использованием Zend Framework!
Если вы все сделали правильно вы должны увидеть надпись "I LOVE ZEND FRAMEWORK!" В противном случае сработает обработчик ошибок, и вы увидете сообщение "Some error happened!"
К сожалению, в данной статье мы не затронули такую важную часть MVC как модель, в следующих статьях мы напишем об этом.
Поздравляем, вы создали ваш первый сайт с использованием Zend Framework!
Комментариев нет:
Отправить комментарий