Zend Framework 2 - первое впечатление

Опубликовано: 20:34 20.12.2014 г. Автор: Андрей Петров.©WEB-Студия "Сусипея"

Начну я с темы, не раз уже обсуждавшейся и успевшей набить аскомину всему рускоязычному сообществу сайтостроителей: отсутствие в интернете качественной литературы по Zend Framework 2 (далее - ZF2) на русском языке. Я нисколько не умоляю заслуг Украинского сообщества Zend Framework или других авторов, но на дворе уже давно ZF2 версии 2.2.3 (а к моменту прочтения Вами данной статьи может уже и выше), и разница между переводом и реально используемыми в ZF2 версии 2.2.3+ классами становится не просто заметной невооружонным глазом, а порой даже критичной!

Нет, безусловно, каждому уважающему себя web-разработчику, так или иначе, пришлось научиться читать мануалы на английском языке, и мануал по ZF2 - не исключение, но очевидным "плюсом" ZF2, который также не раз обсуждался на просторах Глобальной паутины - это "простота" освоения и "низкий" порог вхождения для программистов. Порой простое осознание уже переведенных вещей занимает не один час времени, что уж тут говорить об английском оригинале?!

Собственно, это и послужило стимулом к написанию данного цикла статей!

И еще (это уже мое личное наблюдение): большинство авторов считают, что за ZF2 берутся настолько высококвалифицированные профессионалы программирования, что объяснить им такую элементарщину как "ZF-фабрика", а уже тем более, что означает фраза "Пишем в Bootstrap ..." ниже их собственного достоинства. Так вот, я считаю - это далеко не так и своими статьями я попытаюсь "приземлить" Zend Framework 2 к обычному среднестатистическому веб-разработчику.

Я предполагаю, что у Вас установлен и настроен веб-сервер с поддержкой PHP, сервер баз данных (я предпочитаю XAMPP сборочку Apache+MySQL), среда разработки (я использую NetBeans) и собственно Zend Framework 2 с заготовкой в виде ZF2 Skeleton Application. В настоящий момент, после установки всего вышеперечисленного "добра" Вы должны лицезреть приветственный экран Skeleton Application'а:



Рис. 1 Приветственная страница Zend Framework Skelet Appication.

Первое echo в ZF2

Первый вопрос, возникший у меня лично: "Куда я могу написать свое "echo 'Привет, Андрей!'; " и полюбопытствовать полученным результатом?"

На самом деле, в ZF2 таких мест несколько, но на начальном этапе лучше всего это будет сделать в "<корень сайта>/module/Application/view/application/index/index.phtml". По данному адресу, как Вы, наверное, уже заметили, расположен файл, отвечающий за генерацию вывода полученной информации - так называемый "Шаблон вывода" (в народе - "view'ха"), но об этом Мы обязательно порассуждаем позже. Однако, вынужден сразу предостеречь от первой типичной ошибки начинающих ZF2-разработчиков! Так вот, дорогие мои, запомните себе раз и на всегда: вьюха - не место для какого-либо коддинга!!!

После того, как я это осознал, у меня возник второй банальный вопрос: а куда в таком случае в ZF2 начать писать свой программный код, чтобы он выполнился, и в последствии можно было бы отобразить его результат? Перво-на-перво, я попытался его "заgoogl'ить", и каково же было мое удивление, когда вразумительного ответа в приемлемые для меня сроки я так и не нашел...

На самом деле все не так сложно. Логика программирования в Zend Framework 2 достаточно проста, ее лишь нужно осознать и запомнить.

Всё ZF2-приложение разбито на модули - довольно автономные единицы приложения, отвечающие за глобальные функции всего сайта. Чтобы стало понятнее, в данном сайте Susipea.ru присутствует два модуля: Application и Album. В качестве "главного" модуля сайта оставлен стандартный модуль Application Skeleton Application'а. Он отвечает за вывод шаблона сайта и всех его страниц. Модуль Album отвечает за раздел "Статьи" и все, что с ним связано. Таким образом получается, что если "изъять" из приложения или "отключить" модуль Album, то с сайтом, по большому счету, ничего страшного не случится: он лишь "разучится" отображать статьи. С отключением модуля Application дела обстоят несколько хуже..., но всегда должен же быть кто-то главный, без которого вся работа колом встанет!!!)

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

Но по правде говоря, все это деление на модули, контроллеры, модели и шаблоны вывода (жарг. "в'юхи" от англ. view - вид) весьма условно, и зависит все от предпочтений конкретного веб-программиста. Есть лишь определенные рекомендации, а уж соблюдать их или нет - дело сугубо личное и навязываться тут, я считаю, не правильно.

Итак, начало положено. На сим я заканчиваю свою первую статью. Надеюсь, она окажется Вам полезной. Кому интересно - пишите комменты или на почту: susipea@rambler.ru.