Сегодня мы с Мишей разговорились в ICQ. Разговор получился ОЧЕНЬ длинный и офигительно интересный. Читаем под катом:
Continue reading »
Чем больше я работаю над своим первым проектом на работе, тем больше мне хочется в нем поменять и тем больше я жалею о том, что перед началом работы я не прочитал до конца «The Definitive Guide to Symfony» и не изучил плагины для Symfony. Многие из них мне бы помогли намного сократить время разработки и, что самое главное, не думать о том, как красиво реализовать те или иные вещи… И еще одно — если у вас уже есть кусок системы (как это было у меня), который вы собираетесь переписывать с использованием вашего фреймворка (или просто переписывать, потому что код вам не нравиться) — то мой вам совет — потратьте время на то, чтобы спроектировать этот кусок на план вашей новой системы, не бросайтесь сразу всё переписывать (каюсь, я поступил именно так), так как после анализа (который, возможно, займет у вас не один день, и даже не одну неделю), возможно, от предыдущей архитектуры системы не останется и следа.
Вообще, я люблю проектировать, продумывать, анализировать те или иные решения, которые хочу внедрить в систему (хотя, признаюсь, опыта у меня в этом маловато), но как обьяснить заказчику, что ты провел день в раздумьях… Эх…
Ну ладно, это я отвлекся. Сегодня хочется рассказать о том, с чего стоит начать при разработке системы с помощью Symfony и каких правил следует придерживаться.
Те, кто читают меня довольно давно, знают, что я отношусь к той категории программистов, которые любяят и умеют использовать то, что было сделано раньше - фреймворки, библиотеки и т.д. Так вот, сегодня я поведу разговор о целесообразности использования Zend Framework при построении сайта по схеме MVC и о целесообразности его использования вообще.
Zend Framework в MVC
Для начала - моя цитата:
А я все больше склоняюсь к Django.
А по поводу ZF меня все больше посещают такие мысли: стройным и красивым он кажется только на первый взгляд и именно из-за того, что у нас по сути получается набор классов, которые нам самим предложено связывать. Другие фреймворки нам предоставляют уже готовую структуру каталогов и некоторые “настройки по умолчанию”, а в Zend’е это все нужно делать самому. И в итоге после настройки фреймворка под себя он все больше становится “некрасивым” и похожим на другие фреймворки.![]()
Вот это моя позиция. Могу добавить еще одно - для того, чтобы юзать этот фреймворк, прийдется еще достаточно много всего под него дописать.
Zend Framework как библиотека классов
А вот как библиотеку классов ZF использовать не только можно, но и нужно. Я вот на себе прочувствовал, насколько удобно работать с почтой через Zend_Mail по сравнению со стандартными функциями imap_*. Да и Zend_Db и Zend_Log юзать достаточно удобно.
Писал недавно скрипт, который загружает файлы с POP3-сервера, парсит их и загружает в бд. Сначала написал просто функциями стандартными, а потом переписал с использованием ZF - код стал намного боле красивым, более легким в понимании и сократился в 2 раза. Так что в этой ипостаси ZF, на мой взгляд, идеальное замена многих модулей стандартной библиотеки PHP. Также радует наличие во фреймворке работы со всякими Web-сервисами - Amazon, del.icio.us, Flickr, и это еще не полный список, к тому же разработчики ZF планируют развивать фреймворк именно в этом направлении.
Для себя я вывод относительно ZF сделал такой - иметь на своем серваке однозначно. Даже если если я не буду его использовать для MVC - я буду использовать отдельные его части внутри самого сайта, благо, с этой задачей ZF справляется на отлично.
Сравнение CakePHP и Zend Framework немного откладывается. Я за него еще даже не садился, вкратце - на данный момент Cake поудобнее, в некоторых случаях сильно, но структура, модульность, расшияемость, продуманность, напичканность у Zend не идут с Cake’овскими ни в какое сравнение, но… это еще бета и многого того, что хотелось бы видеть, пока нет.
Теперь о Zend’е - 6-го числа вышла новая версия (а на офсайте нагло врут, что 4-го!). Опять дофига изменений по сравнению с предыдущей версией: планомерно дорабатывают Model, представленную здесь Zend_Db_Table, добавили, пока еще не вьехал зачем, helper’ы к Controller’у, и целая куча других изменений.
PS. До утра попробую накатать небольшой расказ про Zend_Db_Table и возможные способы его улучшения.






Последние комментарии