Как стать автором
Обновить

Вышел релиз eZ Components 2008.1

Время на прочтение3 мин
Количество просмотров922
Сегодня после обкатки релиз-кандидата вышел официальный релиз eZ Components 2008.1. Пересказывать changelog не буду, попробую сделать краткое введение в eZ Components.

Итак, eZ Components — это высококачественный объектно-ориентированный web-фреймворк, написанный на PHP5, распространяемый по New BSD License. О нем уже писали на Хабре. Описываемая версия требует PHP >= 5.2.1

В отличие от фреймворков, предлагающих свою реализацию MVC, ezc оставляет ее на разработчика. Хорошо это или плохо — вопрос сложный, но мне такой подход нравится. Вообще нужно сказать, что ezc — довольно демократичный фреймворк, который позволяет довольно естественно использовать только то, что вы хотите.

Помимо модулей, присутствующих во всех мыслимых фреймворках (абстрактный слой к БД, поиск, работа с почтой и RSS), есть довольно интересные компоненты. Например, построение графиков:

Image Hosted by ImageShack.us

В результате будет сгенерирован вот такой график:



Еще есть интересная компонента для различных трансформаций изображений. Вот пример из реального проекта: нужно обработать список графических файлов произвольного типа (jpeg, gif, png), и создать для каждого thumbnail для списка товаров в jpeg, thumbnail для карточки товара в jpeg, а исходный файл просто сконвертировать в jpeg. Основная идея в том, что сначала нужно создать конвертор и подготовить именованные трансформации:

Image Hosted by ImageShack.us

Мы получили объект конвертора, с которым можем работать где угодно. Как правило, внутри одного проекта используются однотипные трансформации. Обратите внимание, что вторым параметром метода createTransformation() является массив фильтров. В данном примере мы использовали один фильтр на трансформацию, но вообще фильтров может быть сколько угодно. Например, вторым фильтром в трансформациях мы бы могли добавить наложение «водяного знака» с логотипом организации.

Итак, конвертор создан, теперь можем по имени вызывать трансформации, которые он инкапсулирует:

Image Hosted by ImageShack.us

Обратите внимание, что если мы захотим изменить трансформации, например, добавить тот же «водяной знак», или изменить размер, или качество целевых изображений — нам достаточно только по другому настроить конвертор, код в цикле менять не нужно. В цикле вообще происходят минимальные действия, все остальное вынесено за его пределы.

Остальные компоненты перечислять не буду, их довольно много. Читайте документацию, думаю, каждый найдет для себя что-то интересное.

Теперь немного о том, как же начать использовать все эти вкусности. Сначала вам нужно получить и установить ezc. Весьма подробно это описано в Installation Guide. Обратите внимание на то, что версия, устанавлимая через pear и скачиваемая версия существенно отличаются. Скачиваемая включает в себя помимо кода сопроводительную документацию (в том числе тесты и UML-диаграммы в графике, что само по себе вызывает уважение), весит очень много. Pear-версия включает только рабочий код и весит всего 7.7 Mb.

Кто-то конечно скажет, что 8 Мb — это много. Возможно. Но то, что не используется — просто лежит в ФС и, как говорится, «хлеба не просит». Если же вас действительно напрягает такой размер — вы можете установить только необходимые компоненты. Я использую полную pear-инсталляцию.

После того, как желаемый дистрибутив лежит где надо, нужно подготовить функцию __autoload() (зачем это нужно, и нужно ли вообще — другой вопрос). Схема именования файлов в ezc, в отличие например от Zend Framework, довольно сложная и непрозрачная. Поэтому если хотите удобство __autoload(), то нужно использовать стандартный метод из ezc Base. Другого мыслимого пути грубо говоря нет (имя файла берется из достаточно объемных массивов вида 'класс' => 'имя_файла').

Вот пример из реального проекта. Здесь помимо ezc используется Zend Framework. Файлы самого приложения именуются в стиле ZF. Обратите внимание, насколько просто цепляются классы вне ezc (все-таки мне больше нравится схема именования ZF). Путь LIBRARY_PATH должен присутствовать в INCLUDE_PATH: set_include_path(LIBRARY_PATH), в данном примере в там две папки: Zend и ezc.

Image Hosted by ImageShack.us

На этом все. Желаю всем побольше бизнес-логики и поменьше изобретения велосипедов ;)
Теги:
Хабы:
Всего голосов 27: ↑22 и ↓5+17
Комментарии33

Публикации

Истории

Работа

PHP программист
195 вакансий

Ближайшие события

3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн