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.















Комментарии
Shpinx там не поддерживается?
нет. да че сфинкс... не нравится он мне. хочется чисто на PHP реализацию, а в итоге придется писать свое если припрет...
Надо же, только подумал - чойта ты давно на сайт не писал, а тут ты со своей статьёй :) и часа не прошло :)
еб@лся с кодом. :) много долго. нудно... предстоит еще больше.... :)
А вот что б не "е@@@@ться с кодомдолго инудно" какраз и надо использовать существующие разработки, а не плодить велосипеды направо-налево, да еще, к тому же, обычно трехколесные...
хотите об этом поговорить? :)
Отправить комментарий