Первые 8 часов с Zend Framework 1.0.0

Провёл с Zend Framework 1.0.0 около 8 часов. Результат: всё-таки я это дело запустил, подключился к базе, сделал 404 страницу, сделал форму регистрации. Подводных камней куча. Мануал по Zend Framework и примеры желают лучшего. По сравнения с Ruby on Rails стартовать реально сложно – примеры все написаны под разные версии до 1.0.0 и очень часто отличаются структурой.

Первое и самое лёгкое в процессе, это установка: всё просто – скопировал в папку, в include_path закинул и всё, можно пользоваться. Подробности – Introduction to Zend Framework, Installation.

Далее – контроллеры. С ними Quick Start прошёл тоже быстро. Фактически всё из Quick Start прошло без проблем, кроме 404 страницы. Всё сделал как они описали, но не заработало. Код я видимо взял из примера и у меня пробрался throwExceptions в режиме true, как только я понял что к чему, всё заработало. То, как устроена обработка 404ой ошибки с Zend_Controller_Plugin_ErrorHandler мне понравилось. Пока не разобрался с возможностью самому задавать правила роутинга, но это наверняка мелочь уже.

Что меня на данном этапе удивило – это то, что нет единой принятой структуры каталогов, как у Ruby on Rails. Конечно, в Quick Start есть пример, но всё это сделано руками и где-то в мануале, а на это статью не сразу натыкаешься. Я бы сказал не хватает Creating a weblog in 15 minutes – с Ruby on Rails я как-то проще начинал.

Итак, так как я уже разобрался с контроллерами и акшинами, я перешёл к конфигам. WOW! и никаких конфигов тоже небыло. Если надо – пожайлуста, делай сам, из массива, из .ini или из .xml. Где и как будет лежать – наши/ваши проблемы.

Конфиг есть, пора бы и за базой поработать. Обилие возможностей для работы казалось бы не может не радовать. Zend_Db_Select, Zend_Db_Table, Zend_Db_Table_Row. Осилил я Zend_Db_Table и Zend_Db_Table_Row. Часа 3 потратил на то, чтобы загрузить модели, ну или то, что в Zend Framework называется моделью. Оказывается, не смотря на то что в структуре примера есть папка application/models у меня их автоматом не грузит. Как их грузить я вообще не нашёл, поэтому тупо сделал им require_once и всё вроде заработало.
Пока не нашёл способа, куда вводить их моделям валидацию, как в Ruby on Rails, видимо, в Zend Framework всё реализовано по другому. Особо хакать исходники времени небыло, я оставил всё как есть. Потом меня приятно удивил метод save – в случае ошибки, он падает с Exception. Я ожидал что он элементарно будет возвращать true/false и всё. Ладно – обошли это проблему пока, и особых решений этой проблемы я пока не видел, зато видел где-то в их wiki много try { […] } catch { […] } при работе с их моделями.

Скажу честно – впечатления пока никакие. Я ожидал намного больше и со стороны документации и со стороны примеров. да и со стороны самого Zend Framework 1.0.0 я ожидал куда более простую систему, чем увидел. Может это и не верное первое впечатление, но именно оно отталкивает меня от использование Zend Framework в работе и заставляет меня использовать личные разработки.

4 thoughts on “Первые 8 часов с Zend Framework 1.0.0

  1. encNo Gravatar

    попробуй ещё сделать логин юзеров, совсем упадёш ,)

  2. Сергей КуракинNo Gravatar Post author

    Тыб рассказал чего .) Но обязательно посмотрю, как время будет. Только времени жалко немножко – есть подозрения, что то, что у нас внутри немного лучше.

  3. Rauan MaemirovNo Gravatar

    Может напишешь туториал и выложишь? ;) А то я тоже (да и многие другие, как я вижу) замучился, пока стартанул.

  4. Сергей КуракинNo Gravatar Post author

    Хм, тоже идея, но со временем сложнее и я не уверен, что мой способ на 80% правильный.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.