Статьи
Портфолио
Друзья
Контакты

Последние статьи

06.07.2010 Memcache и Zend: у Вас "падает" Memcache? 4 коммент.

06.07.2010 Collabtive - web-based project management software 2 коммент.

03.06.2010 Ускоряем ZF-проекты: автолоад и сборка в один файл 2 коммент.

Все

Категории

PHP 2 стат.

Zend Framework 25 стат.

Javascript 3 стат.

Другое 12 стат.

Книги 1 стат.

Украина 1 стат.

Все

RSS

Статьи

Комментарии

Портфолио

Облако тегов

программирование  Программы  портфолио  php  zend framework  Zend_Db  Smarty  Zend_Form  паттерны  javascript  niceforms  jQuery  Zend_Mail  веб  Google  Zend_Rest  Zend_View_Helper  zend casts  Zend_View  Zend_Layout  speedUp  интернет  Загрузчик фотографий  Flash  ВКонтакте  zend  localization  zend_translate  gettext  антон шевчук  подарки  Я читаю  Книги  sphinx  релизы 

Все

Реклама



Статистика



Rambler's Top100

Главная > Статьи > Zend Framework > Введение в Zend Framework: часть третья
08.08.08 Введение в Zend Framework: часть третья

Здравствуйте. В предыдущей части я Вам рассказывал о работе с базами данных с помощью Zend Framework.

 

А в этой части статьи я расскажу Вам о том, как можно удобно сделать вывод необходимых нам данных в нужном виде на экран. Для этого предназначен класс Zend_View, с помощью которого можно легко реализовать «вид» из паттерна MVC (model-view-controller или модель-вид-контроллер).

 

Будьте внимательны и наберитесь терпения: нам предстоит закончить наше приложение и начать развивать его!

 


Работая над Zend_View


 

Zend_View — это класс PHP фреймворка Zend Framework, призванный отделить программную часть разработки сайта от его дизайна. Тоесть сначала пишется программная часть, а потом оформляются скрипты вида, где мы будем использовать минимум программного кода.

 

Работа с Zend_View заключается в создании переменных внутри экземпляра класса Zend_View и использование этих переменных в скриптах вида. По-умолчанию, Zend_View включён и он обрабатывает скрипты вида из папки «/application/views/scripts/{controller}/{action}.phtml». Каждый скрипт вида это обычный html документ с вставками php кода.

 

Давайте модифицируем наше приложение для работы с Zend_View и напишем вывод всех новостей сайта, а странички для создания и редактирования новостей сайта Вы потом создадите сами (для лучшего освоения материалла).

 

Итак, создайте файл «index.phtml» в папке «/application/views/scripts/news/» и напишите в нём такой код:


В выше приведённом коде объект $this это и есть наш объект Zend_View, в котором мы создали несколько переменных из контроллера. В коде я использовал сокращенные конструкции PHP, для удобства работы. Например, проще записать

нежели:

Примечание: короткие конструкции работают только если в настройках сервера включена директива short_open_tags. Но на данный момент short_open_tags=off — редкость.


Видите как просто оформить подобный  проект, для того, чтобы изучить весь функционал Zend_View читайте официальный мануал (мне просто лень описывать всё подряд, когда в мануале доходчиво расписано). Zend_View позволяет разбивать Ваши странички на небольшие кусочки, например, шапку можно написать один раз для всех страниц сайта, а потом подключать её в разных скриптах вида. Такой подход даёт много преимуществ:

  • при изменении шапки не прийдётся редактировать все скрипты;
  • предотвращается дублирование часто использоваемого кода;
  • ничего лишнего не путается в Ваших скриптах. Вы работаете только над оформлением тела документа!

Не забудьте написать следующий код в нашем контроллере, иначе наш проект работать не будет:

 

С предыдущей статьи изменений почти нет. Были добавлены только строчки, где я работаю с Zend_View. Они очень тривиальны и понять их работу опираясь на уже изложенный материал очень просто. В качестве «домашнего задания» рекомендую

 

Вам создать скрипты вида для добавления и редактирования новостей. Для удаления новости скрипт вида не нужен, поскольку в конце мы перенаправляем браузер на другой адрес (если хотите можете что-то и вывести пользователю, убрав редирект :) ). Если Вам что-то непонятно, то пишите в комментарии - с удовольствием объясню :)

 

Happy End


 

Поздравляю Вас. Вы прошли моё хилинькое :) введение в Zend Framework. Это введение меня сильно утомило, потому, что очень хочется писать о более интересных вещах. И в дальнейшем я именно этим и займусь, я покажу Вам ещё много других вкусностей этого фреймворка. А со временем Вы и сами поймёте: Zend Framework - очень мощный и ефективный инструмент в руках проффесионала!

 

Удачи Вам в Ваших начинаниях!!!

Теги:  программирование, php, zend framework

Другие категории:

■ PHP ■ Zend Framework ■ Javascript ■ Другое ■ Книги ■ Украина
Комментарии к статье
  Kupuyc

01.09.08 11:42:08

На правах ответного визита с web-dev.info. Лично я уверен, что конструктивна только критика, поэтому, не обижайтесь, пожалуйста. Поправьте стили для вывода кода, в FF2 (может еще где) происходит наезжание строк друг на друга. Имеют место быть орфографические ошибки - несколько портят впечатление от материала (називают. предидущий, програмную, ефектывный).

Навскидку не помню точно, но, емнип, методы действий контроллеров принято писать в camelCase нотации. Смайлы, имхо, это башорговское - у вас серьезный материал, стоит ли подавать его в стиле комедийного рассказа? Немножко повнимательнее - во вступлении статьи опечатка в имени класса Zend_View. Главный контроллер сайта News?

С почином, уставайте меньше.

  illusive

02.09.08 06:31:12

Спасибо за критику. Материал доработаю, а за ошибки извините - я родился и вырос на западной Украине, где общаются только на украинском языке, вот и русская орфография еще пока хромает Хмурый

А с выводом кода - пока проблема. Я сейчас переписываю весь движок сайта, так как он перестал меня устраивать. Вот и времени на окончательную доработку самого сайта и материала не хватает.

Спасибо, именно критики мне и нехватало! Мне нужен был человек, который указал бы на все мои недочеты и высказал свое критическое мнение - это мой стимул двигаться дальше!

  illusive

02.09.08 08:25:15

Ошибки подправил. Спасибо. Насчет наложения строк не особо понял: этого никогда не наблюдал. Опечатки в имени класса Zend_View небыло. А в каком стиле писать статьи - решать мне (я и не подавал рассказ в комедийном стиле, просто в конце введения немножко подшутил над собой). Спасибо еще раз, помогли, поправили, хоть и не вся критика (ИМХО) была объективной

  Александр

15.11.08 12:45:42

Хорошо пишете. Я бы конечно некоторые моменты оспорил, ну да ладно.

  illusive

16.11.08 07:29:11

Хорошо пишете. Я бы конечно некоторые моменты оспорил, ну да ладно.

Спасибо. Я бы с удовольствием поучавствовал в споре с Вами :))) Так что оспаривайте!

  fra

06.12.08 09:43:26

Непойму, зачем писать статьи в которых говорить: "... прочитайте в документачии к фреймверку".

  illusive

07.12.08 10:55:05

Непойму, зачем писать статьи в которых говорить: «... прочитайте в документачии к фреймверку»

А зачем повторяться, если в документации доходчиво расписано? Я пишу про те вещи, которые являются интересными или с которыми могут возникнуть трудности. Переписывать мануал — не вижу смысла.

  Lesswipse

11.12.08 15:43:54

Огромное человеческое спасибочки !

  illusive

14.12.08 13:19:01

Огромное человеческое спасибочки !

Пожалуйста Подмигивает

  Dr0n

25.03.09 15:00:51

Спасибо, очень неплохо описано. Но не вижу описания layouta. На самом деле очень важный в момент 
в "понимании" работы данного фреймворка.

  illusive

27.03.09 09:52:44

Имхо, мое мнение, что для базовой реализации и описания Zend_View хватит для понимания основных принципов фреймворка, а Zend_Layout - это как бы более профессиональное решение, до которого еще нужно рости. Взвалить все и сразу на голову читателей не моя методика. Я лучше напишу со временем отдельную статью на эту тему, нежели сделаю "черти что и сбоку бантик" Смеётся.

Спасибо за внимание.

  Dr0n

30.03.09 11:05:36

Позвольте с вами не согласиться. Конечно, все целиком описывать и не надо, но для базового уровня знаний, необходимо понимать для чего нужен «макет». Т.к. в дальнейшем (при условии работы в данной среде) начинается такая каша Улыбается

ps. Очень бы хотелось прочитать будущую статью. Особенно интересна реализация “фронтенд” – “бекенд” частей т.е. возможность «автоматического» выбора шаблона.

  illusive

30.03.09 13:33:17

Очень бы хотелось прочитать будущую статью

Ваше желание выполнено!

 

Я с Вами частично согласен - понимание терминов "макет" и "шаблон" важны, но это выходило за рамки статьи. Вы знаете сколько еще в Зенде важных даже для новичка вещей?

  Дмитрий

15.11.09 18:37:54

вот я и на третей части туториала:)

Хочу заметить на несколько ошибок у Вас:

Итак, создайте файл «news.phtml».... Если такой файл создать,то надо и в NewsController.php indexAction() переименовать в newsAction()

Ну и в первом листинге, ошибки типа $val[''id''] а надо

$val['id'] или $val["id"]

А так пока всё хорошо!

 

  illusive

15.11.09 22:58:34

Спасибо, Дмитрий, за замечания. Поправлю, когда будет время.

  Роман

03.02.10 13:39:15

У меня вот проблемка. Если перейти по адресу slovar.loc/index/add/, то вызывается метод add из класса indexController. Так вот у меня почемуто пишет not found. А когда добавляю директорию index/add/index.php то файл находит в этой директории. Подскажите пожалуйста, в чем моя ошибка?

  illusive

03.02.10 14:12:37

Проверьте ваш .htaccess файл. Он должен находится в папке public_html. А что должно в нем быть читайте в мануале.

 

З.Ы. Если с этим все ок, то проверьте установлен ли у Вас mod_rewrite для Apache

  Роман

07.02.10 12:22:58

Спаибо за помощь! Разобрался!

  Роман

07.02.10 15:29:16

Мне вот не понятна одна вещь. Возмем к примеру адрес http://site.loc/index/add/ . Тут видно и понятно какой идет вызов метода в контроллере. А ели взять адрес http://site.loc/index/users/panels/3/ . Мне вот непонтна суть этого адреса, что метод а что контроллер. Может это конечно зависит и от самого кода программы, подскажите пожалуйста.

  illusive

08.02.10 00:25:18

Это все зависит от конфигурации роутов Улыбается

  Олег

29.05.10 00:28:13

Ну я как новичек в Zend откуда взялся обьек $val в пхтл файле непонимаю. Иногда нехватает коментариев кокретизирующих то или иное действие и его логику. Пхтмл каким файлом вызывается?
  illusive

31.05.10 10:17:06

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

Скрипты вида вызываются компонентом Zend_View. По-моему все было расписано Улыбается

  Герман Клюшин

13.07.10 22:31:50

Функция editAction, вторая часть условного оператора:




Вопрос: ОТКУДА ВЗЯЛСЯ $id??

  illusive

13.07.10 23:23:44

Спасибо. Исправлено.

  Герман Клюшин

14.07.10 09:23:01

Сейчас контроллер сделан так, что редактирование можно вызвать только POST формой, а как сделать так, чтобы редактирование запускалось через ссылку?
Я так понимаю, что надо брать $id так же как в deleteAction:
$id = $this->_request->getParam('id', 0);
Но у меня вопрос: а как эту ссылку формировать? 

  illusive

15.07.10 23:05:47

Да, верно.

Ссылку можно сформировать так (в скрипте вида):

Оставить свой комментарий

 
Статьи | Портфолио | Друзья | Контакты
Идея и мозги: Васильев Андрей © 2008-2010 Web-Blog Кисточка и фантазия: Зелинский Богдан