6 ноября 2009 г.

Zend Framework на страже всех Банкоматов

Наш любимый «Банкоматор» перенёс серьёзную операцию миграции с CodeIgniter на Zend Framework. Благодаря тому, что его организм ещё молод, раны зажили быстро, самочувствие улучшилось, а жажда улучшения только увеличилась. И вот почему.

CI to ZEND

После более чем года использования php-фреймворка CodeIgniter, стало ясным, что чем меньше и легче инструмент тем больше желание его улучшить, расширить, препарировать. В том случае, когда только один разработчик трудится над проектом, это не страшно, но со временем, когда возникает необходимость коллективной разработки, это начинает мешать. В случае CodeIgniter, было недостаточно ни встроенных средств, ни встроенной возможности масштабирования. Приходилось писать свои хелперы, расширения ядра, и т.п., которые по сути не являлись уникальными для проектов, а также использовать различные сторонние библиотеки (кстати, мы использовали две библиотеки из Zend Framework). Мы были вынуждены создавать свои костылики и костыли, чем вызывали дисбаланс в карме используемого нами фреймворка.

Наш выбор пал на Zend Framework, во-первых, из-за его репутации (лёгких путей не ищем), во-вторых, из-за лучшей масштабируемости, модульности, расширяемости и т.п. и, в-третьих, из-за большого количества вкусностей из коробки. Стоило бы упомянуть хорошую документацию и наличие мануалов... API есть, но изучать по нему Zend сложновато; к сожалению, даже в англоязычной литературе есть некоторые пробелы, которые касаются оперативности (текущая версия 1.9.5) и, главное, конструктивных решений (именование классов, расположение файлов и т.п.). Один из минусов — наличие большого числа различных решений одной и той же проблемы, но, правда, с нюансами, от которых и должен зависеть выбор.

Но хватит о минусах. Zend Framework имеет ряд плюсов (по крайней мере по сравнению с CodeIgniter), которые заставляют нас уважать его. Конкретные и достаточно жёсткие стандарты кодирования, что незаменимо в средних и больших коллективах разработчиков, модульность, некоторый ORM и другая абстракция - позволяет создавать более гибкие и переносимые модели, хорошо продуманная и удобно воплощаемая двухуровневая система шаблонов, расширенная и иерархичная модель MVC (вызовы контроллеров и отображений из шаблонов, диспетчеры), гибкая система встраивания своих плагинов и других обработчиков, плюшки (права доступа, кеш, json, дебаг с FirePHP, профайлер и другие, которые мы ещё не попробовали, но они там есть :-))

Пока пациент поправляется, мы будем постепенно освещать некоторые интересные подробности миграции и делиться ссылками.

1 комментарий:

  1. А я вот заболел Flow3(http://flow3.typo3.org/), начал небольшие проекты на нем писать. Zend хорошая штука, но больше похож на библиотеку всякой всячины, чем на фреймворк, от сюда его и сильные и слабые стороны.

    ОтветитьУдалить