Главная > Open Source, PHP > РНР и компонентный фреймворк для профессиональных проектов корпоративного уровня

РНР и компонентный фреймворк для профессиональных проектов корпоративного уровня

15 ноября 2007

По причине приближающегося бета-релиза нашего флагманского проекта, сегодняшний пост будет кратким. А расскажу я вам про свою мечту. Нет, это не Анжелина Джоли, как мог бы кто-то подумать, а новый фреймворк для языка РНР. Хотя нет, новым его назвать сложно, на рынке он уже несколько лет, и буквально вчера вышла новая версия, 2007.2 альфа 1, о которой я вкратце и расскажу.

Речь идёт о наборе компонент eZComponents от компании eZ Systems AS, который является одновременно и самостоятельным продуктом, и основой для их собственной CMS системы. Набор позиционируется как основанное на РНР 5 решение корпоративного уровня. Кстати, что под этим понимается (не только в данном случае, но и вообще), давайте разберёмся.

  • Стабильная компания или команда разработки. Желательно, что бы ПО имело уже историю версий, применение и участвовало в разработке или внедрении хоть бы одного-двух реально больших систем. С этой стороны у ezComponents все отлично, компания стоит за ними большая и давно уже на рынке, компоненты также имеют длительную историю как самостоятельный продукт.
  • Отлаженный, чёткий и стандартный процесс разработки. Подразумевается, что разработка ведётся согласно каким-либо стандартам, технологические процессы также зафиксированы и стабильны. Также и процесс разработки проходит по плану, выпускаются и тестируются промежуточные версии перед релизом. Компоненты также отвечают этому требованию, а следить за разработкой можно через публичный репозитарий кода и систему багтрека/управления проектом.
  • Документация, включая как внутри кода, так и внешняя, сформированное сообщество вокруг продукта. Код компонентов прекрасно документирован, используя стандарт phpDocumentator, есть и общие для релизов документы, описывающие архитектуру, нововведения и изменения в версиях. На веб-сайте доступна и онлайновая документация по всех модулях и функциях. Вместе с исходным кодом, для каждого компонента есть примеры и руководства по использованию. Хотя вот с внешней к коду документацией немного не сложилось, доступных статей об особенностях работы того или иного компонента, или же описывающие совместную работу в каком-то реальном проекте очень мало и они выходят не часто.
  • Тестирование кода. ezComponents используем встроенный менеджер тестов и целый набор (иногда десятки и больше) тестов для каждого компонента, так что весь код проверяется в процессе разработки неоднократно, что положительно сказывается на качестве, хотя это и не абсолютная гарантия.
  • Архитектурная документация. В этот раздел я выделил специфическую документацию, которая включает формальное описание архитектуры и динамики системы. ezComponents, похоже, чуть ли не единственный фреймворк с такого рода документацией к каждому компоненты, включая UML диаграмму классов, xml описание для моделлера (разработчики используют Enterprise Architect) и текстовое описание архитектуры.

По всех параметрах да, ezComponents можно вполне применять в серьёзных проектах. Да, ещё мы не указали возможность получения технической поддержки, в том числе и гарантированной (коммерческой, в режиме 24х7), но это вроде как само собой разумеется.

Так стоп, а что же такое эти компоненты то?! Честно скажу, это очень большой набор компонентов, которые выступают строительными блоками любого проекта - там есть как общераспространённые модули, вроде почтового, модуля абстрактного доступа к СУБД, файлового, работы с архивами, системы аутентификации, так и достаточно специфические, а некоторые и вовсе уникальные: кёш-модуль, с возможностью работы как с акселераторами, так и с memcached, модуль WebDav, работа с графами, анализатор изображений и даже особый предмет гордости разработчиков (о нем на всех похоже РНР конференциях рассказывалось) модуль документооборота Workflow.

Конечно, пришлось расплачиваться за такую мощь большим размером, базовый дистрибутив занимает около 20 мегабайт, но это вместе со всей документацией, примерами и тестами. Да и применять в проекте можно лишь те компоненты, что вам необходимо.

Я намеренно не углубляюсь в конкретику - вы можете это сделать сами, загрузив дистрибутив и протестировав его на своих задачах. Кстати, на счёт документации - буквально вчера вышла книга по использованию компонентов - "eZ Components - The Developer Handbook", так что ниша документации постепенно заполняется. Так что смело можно рекомендовать использовать это мощнейший инструмент, к тому же высочайшего качества - очень немногие open-source разработки для РНР могут похвастаться таким набором качеств.

Categories: Open Source, PHP Tags: ,
  1. Пока что нет комментариев.
Комментирование отключено.