Предисловие
Я работаю в довольно крупной компании. Преимущественно мы используем довольно специфичную систему — eZ publish.
По ходу обучения работе с этой системой, я столкнулся с рядом трудностей:
- отсутствие актуального How-To для новичков
- довольно ограниченное сообщество(относительно других подобных проектов), особенно русскоговорящее
- довольно низкая популярность среди разработчиков в силу своей специфичности
- сложный для начального понимания принцип работы, особенно после перехода с Joomla!, Drupal etc.
- отсутствие мотивации со стороны разработчика
За 3 месяца работы с ней я долго её хаял, но после того, как мне дали проект и я его довольно быстро выполнил, то понял, что система довольно уникальна в своём роде и имеет право на жизнь, но т.к. материалов для новичков действительно мало, некоторые сдаются и бросают это дело. Я это хотел бы исправить. Вернее всего было бы начать с мотивации.
Немного истории...
Т.к., о системе могут некоторые ни слухом, ни духом, привожу краткий экскурс в историю.
eZ publish(eZ — произносится, как «easy» — рус. «просто») — детище молодых норвежских умов eZ Systems — мощная CMF/CMS, написанная на PHP, распространяется в двух версиях: бесплатной и платной под лицензиями GNU GPL и PL соответственно, работает под Apache/IIS. Основались они в 1999 в городе Шиен и распространены преимущественно в Европе, также есть филиалы в США и некоторых странах Азии.
Мотивация. Чем eZ отличается от других?
«Всё есть объект»
Тем, кто любит ООП и повседневно его использует система будет необычайно близка, т.к. уже попадая в административную панель Вы начинаете понимать что, там главенствует принцип «Всё есть объект»: все сущности(статьи, картинки, форумы etc), размещаемые в системе представлены в виде классов и их объектов. Также имеется возможность создания своих классов, в т.ч. на основе уже существующих, что позволяет максимально подогнать систему под себя затратив при этом минимальные усилия и не иметь дела с базой данных.
Класс в eZ, как и в классическом ООП — комплексный тип данных, т.е. состоит из одного или более атрибутов определённого типа данных, которые тоже, при необходимости, можно писать самому, но в большинстве случаев это не требуется.
Отличием от классики является то, что методы встроены не в сами классы, а в типы данных(e.g. именно там реализуется проверка данных на валидность).
«Ваша» структура сайта
eZ уважает ваше мнение решение в построении структур: кода, шаблонов, настроек и древа контента.
Древо контента представляет из себя множество узлов, выстроенных в определённой иерархии. Каждый узел — это объект какого-то класса и является по сути хранилищем Ваших данных любого типа. (подобную вещь встречал только в ModX)
Рамки оформления кода ограничены только Вашими нуждами и совестью, чем, например, не может похвастаться ни один MVC framework или та же самая Joomla!..
Все настройки могут хранится, как в объектах, так и в настроечных ini-файлах, что зачастую бывает очень удобно.
Язык шаблонов. class eZ
В большинстве случаев, в eZ используется не чистый PHP, а язык шаблонов, поскольку с помощью него можно получить любые данные из любого уголка системы и удобным образом их вывести. Синтаксис языка шаблонов является Smarty-подобным(но всё же это не Smarty!), так что поклонники упомянутого шаблонизатора будут приятно обрадованы. Плюc по нему есть очень удобное руководство.
Мощная система кэширования
eZ оснащён мощной системой кэширования, которая по умолчанию кэширует большую часть динамического содержимого, что позволяет сэкономить на обращениях к базе данных. Также имеется возможность кэширования произвольной части сайта в коде, если это необходимо. Это позволяет использовать систему в нагруженных проектах.
Резюме
В принципе, всё это лишь урезанный список достоинств. Но на мой взгляд уже этого достаточно, чтобы заинтересоваться. И сделал бы лично от себя замечание, что я бы позиционировал eZ publish не как CMS, а CMF, т.к. изначально он для пользователя, который залез в админку добавить контент выглядит слегка непонятно, а сайты на нём делать быстро, удобно и одно удовольствие.