В последние несколько лет моя работа связана с использованием CMS Drupal, но на досуге я изучал и just for fun запускал проекты на питоновских фреймворках Django, Flask и Twisted. Сейчас я решил освоить основы двух-трех популярных PHP-фреймфорков и первыми я решил изучить Zend Framework 2 и Yii.
В процессе ознакомления с Zend Framework 2 я изучил туториал с официального сайта (http://framework.zend.com/manual/2.2/en/user-guide/overview.html), просмотрел документацию фреймворка (http://framework.zend.com/manual/2.2/en/index.html), прочитал книгу Michael Romer “Web development with Zend Framework 2” и собрал собственное тестовое приложение.
Переварив всю эту информацию, я пришел к мысли, что официальный туториал к фреймворку суховат:
- в нем не рассказывается о работе с пользователями, сессиями и правами доступа,
- лишь вскользь рассматривается такая основополагающая часть фреймворка как ServiceManager,
- в качестве интерфейса с базой данных безальтернативно используется паттерн Table Gateway (и соответствующая его реализация в фреймворке),
- используется встроенный в фреймворк шаблонизатор, который после питоновского Jinja 2 кажется совершенно неудобным и примитивным,
- и т.д.
В итоге, более-менее удовлетворительное по функционалу приложение я смог создать после прочтения книги.
В этой статье я хочу привести пример разработки простого блога, в ней будет несколько отличий от официального туториала. В первую очередь я постараюсь заострить внимание на тех вопросах, которые во время изучения показались мне недостаточно раскрытыми в официальном туториале. Кроме того я буду использовать некоторые технологии, альтернативные тем, что используются в Zend фреймворке по умолчанию:
Статья написана новичком (в Zend Framework) для новичков, по этому приветствуется любая критика по делу и советы по усовершенствованию приложения.
Найти код проекта можно на Гитхабе: https://github.com/romka/zend-blog-example.
Статья будет разбита на 3 части:
- в первой (текущей) части я рассмотрю структуру ZendSkeletonApplication,
- во второй части разберу разработку собственного модуля (формы, работа с БД при помощи Doctrine ORM, разработка View-плагина),
- третья часть будет посвящена работе с пользователями.
Итак, приступим.