Zend Framework, его плюсы и минусы

Тихим сапом доделываю один проект на Zend Framework 1.6.1..

Многим библиотека понравилась. Есть много как плохого так и хорошего.
Из хорошего - достаточно толковый набор классов с БД, классы конфигурации, класс реестра - позволяющий совсем избежать так любимые всеми глобальные переменные.

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

Zend_Form - позволяет быстро и легко создавать формы, декорированные програмистом так, как ему надо. Одной из приятностей класса является валидация данных - применяется набор классов валидаторов, которые сводят на нет тупую работу по проверке вводимых пользователем параметров.
Единcтвенное - я считаю это серьезным недочетом - элемент Zend_Form_Element_File - предназначенный для загрузки файлов работает очень интсресно - он делает вызов receive() получения файла на этапе валидации. Что приводит к вызову move_uploaded_file() ДО того как программист может решить - а что же делать с файлом :)
Я бы все-таки разделил на этом этапе валидацию.

Очень приятной оказалась интеграция с Dojo, в частности с компонентами позволяющими AJAX. Тут свой нюанс - в Dojo отсутствует русская локализация для календаря, но лечится это довольно простеньким патчем и самописным файликом локализации.

Zend_Search_Lucene, который предлагается использовать для поиска по сайту, и который позиционируется как порт Apache Lucene, при детальном рассмотрении оказался недоделкой... Потому как все результаты поиска эта штуковина тупо грузит в память всю выборку поиска. И вариант того, что памяти на один процесс PHP может не хватить, как то не продуман и не предусмотрен. Если же лимитировать поиск - то нафиг слетает ранжирование.
Получается что Zend_Search_Lucene - это нечто что хоть как-то работает с файлами апачевской люцены. и все. :)

Модель MVC в общем понравилась - существенно упростила разработку + Zend_Controller_Router фактически дает очень много возможностей для реализации ЧПУ.

Система работы с переводами строк Zend_Translate дает возможность создавать многоязычные приложения и съедает большое количество типов файлов переводов. + В ней есть кеширование строк, нужное, так как обработка файлов переводов - емкая операция. Единственный нюанс с Zend_Translate - отсутсвие понятия plural для правильной работы с числительными. Но с этим можно как то мириться. По крайней мере написать соответсвующую функцию можно достаточно быстро.

В общем складывается ощущение что люди пишут библиотеку медленно, но все-таки по уму, даже при большом количестве явных недоделок вроде Zend_Search_Lucene, и принципов работы Zend_Form_Element_File.

Комментарии

Submitted by Azarov on

нет. да че сфинкс... не нравится он мне. хочется чисто на PHP реализацию, а в итоге придется писать свое если припрет...

Submitted by Goh'Dan (не проверено) on

Надо же, только подумал - чойта ты давно на сайт не писал, а тут ты со своей статьёй :) и часа не прошло :)

Submitted by Гость (не проверено) on

 А вот что б не "е@@@@ться с кодомдолго инудно" какраз и надо использовать  существующие разработки, а не плодить велосипеды направо-налево, да еще, к тому же, обычно трехколесные...