Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 11.06.2011, 21:25   #1
Заблокирован
 Разведчик
Аватар для Я убью:Frost:DD
 
Я убью:Frost:DD на правильном пути
Регистрация: 06.06.2011
Сообщений: 20
Популярность: 74
Сказал(а) спасибо: 65
Поблагодарили 32 раз(а) в 22 сообщениях
 
По умолчанию Создание собственного объекта View с Zend_Application

Предположим, что вам необходимо создать свой объект вила (view) в приложении Zend Framework. О том, как правильно это сделать, узнаете в этом уроке.

Создайте новый файл library/App/View.php:1 class App_View extends Zend_View
2 {
3 // custom methods here
4 }


Так же не забудьте добавить пространство имён App_ в application.ini:1 autoloadernamespaces[] = "App_"


Всё, что нам необходимо сделать так это сообщить Zend_Application, о том, что у нас есть свой собственный класс. Это может быть реализовано двумя путями: непосредственно в Bootstrap.php или предварительно создав отдельный ресурс.
_initView() в Bootstrap.php

На первый взгляд тут всё довольно-таки просто. В application/Bootstrap.php, мы добавили наш собственный метод, который создаёт объект вида:01 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
02 {
03 protected function _initView()
04 {
05 $view = new App_View();
06
07 $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
08 $viewRenderer->setView($view);
09 Zend_Controller_Action_HelperBroker::addHelper($vi ewRenderer);
10 return $view;
11 }
12 }


Данный метод мы назвали _initView() для того, чтобы он заменил собой уже существующий метод. Однако такой способ приведёт к тому, что данные вида resources.что-то из application.ini будут полностью игнорироваться, так что введём несколько изменений:01 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
02 {
03 protected function _initView()
04 {
05 $resources = $this->getOption('resources');
06 $options = array();
07 if (isset($resources['view'])) {
08 $options = $resources['view'];
09 }
10 $view = new App_View($options);
11
12 if (isset($options['doctype'])) {
13 $view->doctype()->setDoctype(strtoupper($options['doctype']));
14 if (isset($options['charset']) && $view->doctype()->isHtml5()) {
15 $view->headMeta()->setCharset($options['charset']);
16 }
17 }
18 if (isset($options['contentType'])) {
19 $view->headMeta()->appendHttpEquiv('Content-Type', $options['contentType']);
20 }
21
22 $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
23 $viewRenderer->setView($view);
24 Zend_Controller_Action_HelperBroker::addHelper($vi ewRenderer);
25 return $view;
26 }
27
28 }


Данная версия функции принимает во внимание ресурсы из application.ini и очень похожа на встроенную функциональность, которую предоставляет Zend Framework.
Собственные ресурсы

Теперь самое время переопределить Zend_Application_Resource_View нашим ресурсам вида. Для этого создадим класс App_Resource_View и расположим его в library/App/Resource/View.php. Всё, что нам нужно, так это переопределить метод getView():01 class App_Resource_View extends Zend_Application_Resource_View
02 {
03 public function getView()
04 {
05 if (null === $this->_view) {
06 $options = $this->getOptions();
07 $this->_view = new App_View($options);
08
09 if (isset($options['doctype'])) {
10 $this->_view->doctype()->setDoctype(strtoupper($options['doctype']));
11 if (isset($options['charset']) && $this->_view->doctype()->isHtml5()) {
12 $this->_view->headMeta()->setCharset($options['charset']);
13 }
14 }
15 if (isset($options['contentType'])) {
16 $this->_view->headMeta()->appendHttpEquiv('Content-Type', $options['contentType']);
17 }
18 }
19 return $this->_view;
20 }
21 }


Для того, чтобы заставить Zend_Application загрузить наш собственный ресурс просто добавьте данную строку application.ini:1 pluginPaths.App_Resource = "App/Resource"
  Ответить с цитированием
Пользователь сказал cпасибо:
ololoshnik212 (11.06.2011)
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] Создание собственного элемента формы в Zend Framwork Я убью:Frost:DD Web-программирование и технологии 0 11.06.2011 20:53
[Помогите!] Программа пишет ошибку:В экземпляре объекта не задана ссылка на объект. dog1997 Школа Читера 4 27.02.2011 03:05
Создание собственного моба malixa123 Perfect World 1 19.01.2011 23:02
WP отправка собственного пакета FreeFree Общение и обсуждение 2 06.12.2010 16:49
Создание собственного рецепта FFForever Lineage 2 0 17.03.2009 18:56

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 01:59.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net