Кастомный элемент формы или Plugin by name xxx was not found in the registry

Когда-то давно я столкнулся с проблемой подключение tinyMCE редактора в качестве элемента формы. Я нашел в интернете руководство по интеграции этого замечательного редактора в Zend Framework.

С хелперами все работало замечательно, т.е. внутри шаблона можно было просто писать

$this->tinyMCE()->render();

и появлялся редактор :)

Однако, я привык к тому, чтобы делать инициализацию всех элементов формы при помощи компонента Zend_Form, чтобы впоследствии получить удобный механизм проверки всех элементов формы. Читать далее

Как работать с базами данных или знакомство с компонентом Zend_Db

Как работать с базами данных или знакомство с компонентом Zend_Db

Редко какое веб-приложение обходится без работы с базой данных. Компонент Zend_Db предоставляет удобный интерфейс доступа к SQL базам данных. Он использует ряд адаптеров для соединения с различными

базами данных. На полноценную ORM рассчитывать не приходится, да это и не нужно в большинстве случаев, Zend_Db является своего рода конструктором запросов. Разводить холивара на тему того, использовать

ли plain sql или ORM, не буду. Лично я сложные запросы предпочитаю записывать в явном виде, а простые можно генерировать, используя тот же самый Zend_Db.

Читать далее

Как настроить xgettext для перевода phtml файлов

Как настроить xgettext для перевода phtml файлов

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

Так как я рассказываю на этом сайте о Zend Framework, то перевод я осуществлял естественно при помощи Zend_Translate. Компонент Zend_Translate позволяет использовать несколько адаптеров для

перевода. Я же в основном до этого всегда использовал gettext — встроенный в php механизм для перевода текстов. Есть с ним ряд проблем, но в целом мне очень нравится работать с ним. Огромный плюс  — это, пожалуй,

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

строчки для перевода, а потом в случае изменения лезть в этот же самый файлик и ручками править. Удобно ;)

Читать далее

Метки вида

Метки вида

Метки страниц

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

В Zend Framework реализован шаблон «Компоновщик«, который позволяет нам менять страницу любым образом. Суть этого шаблона заключается в том, что в глобальном слое страницы мы определяем те области, где будет выводиться различный контент страницы в зависимости от запроса пользователя. Таким образом наша страница разбивается на множество мелких частей, объединяя которые впоследствии, мы получаем целое приложение. Читать далее

Zend Layout и ajax приложение просмотра погоды

Zend Layout и ajax приложение просмотра погоды

Мы пишем программы, чтобы облегчить жизнь рядовым пользователям. Однако какой бы уникальной ни была ваша программа, не последнюю роль играет ее внешний вид, т.е. графический интерфейс. Дизайнеры и специалисты по построению UI (user interface) тратят много сил, чтобы создать понятную и удобную «обертку» для программы. Однако за программистами остается
работа по созданию инструмента, который бы позволил легко настраивать внешний вид, и не последнюю роль в этом процессе играют шаблоны. Поэтому очень важно использовать простые и
понятные методики использования шаблонов, чтобы другие люди с легкостью могли настраивать внешний вид как они сами того пожелают. Zend Framework предлагает два компонента
для управления представлением программы — Zend_View и Zend_Layout. Сегодня мы рассмотрим лишь один из них, а именно  Zend_Layout.

Zend_Layout является своего рода макетом страницы, он представляет собой каркас, фундамент вашего представления. Именно в своем layout вы определяете доктайп, стили и внешние подключаемые файлы в секции head, разбиваете страницу на различные блоки, чтобы потом можно было отрендерить их, используя вспомогательные шаблоны или снипеты. Таким образом ваша HTML страница изначально будет строиться с использованием макета layout. Zend_Layout реализует паттерн двухшаговая шаблонизация. Т.е. сначала вы представляете данные в виде некой логической структуры, а затем используете необходимое форматирование данных, чтобы представить их пользователю. По умолчанию Zend Framework предлагает хранить ваши макеты в папке layouts/scripts, которая находится в папке application вашего приложения.

Читать далее

Каталог книг на основе сессий

Каталог книг на основе сессий

В прошлый раз мы рассмотрели создание своих контроллеров и действий. Теперь настало время написать свое мини-приложение с
CRUD (create-read-update-delete) функционалом. Так как вопросы работы с базой данных я оставлю на следующий раз, то работать мы будем с сессиями. Раз уж мы
создали контроллер BookController, давайте продолжим и напишем мини-каталог книг.
У каждой книги будет свое название, автор и краткое описание.

Читать далее

Как создавать свои приложения

Как создавать свои приложения

Итак, в прошлый раз мы установили Zend Framework. Давайте теперь посмотрим, что происходит при запуске приложения. Мы рассмотрим, что из себя представляет файл index.php, как создаются контроллеры, как добавить своей действие.

Начнем с файла index.php, куда направляются все запросы нашего приложения.
Читать далее