Статьи

Обзор: Learning eZ Publish 3

Если вы когда-либо изучали множество приложений с открытым исходным кодом, созданных с помощью PHP, есть хороший шанс, что вы слышали о публикации eZ , фреймворке CMS / приложения, который имеет все функции, которые вы ищете.

eZ publish даже появлялся на SitePoint несколько раз; еще в ноябре 2002 года с изданием eZ: PHP-приложение Killer (версия 2.x), а также интервью с Бёрдом Фарстадом о системах eZ ; затем, в июне 2003 года, Себастьян ван дер Влиет провел оценку версии 3.x.

Публикация eZ версии 3.x, выпущенная в марте 2003 года, была радикальным пересмотром, который имел только самое смутное сходство с предыдущей версией, но был разработан с учетом роста и сформирован опытными разработчиками версии 2.x. Спустя полтора года мы уже находимся на версии 3.4, и новый дизайн начинает «успокаиваться», пока список возможностей растет. В то же время, системы eZ набирают силу , набирая обороты Derick Rethans (автор XDebug ).

Первый!

Возможно, это показатель зрелости и масштабности eZ Publish, который теперь является предметом книги: Обучение eZ publish 3: Создание решений для управления контентом (полная информация приведена в конце этой статьи) — впервые для приложения, написанного на PHP ( за исключением всеобъемлющего PHP PEAR :: DB ).

Исторически сложилось так, что документация всегда была самым слабым звеном eZ-публикации по тем же причинам, на которые ссылалась любая команда разработчиков программного обеспечения. Следствием этого является то, что те, кто свободно владеет PHP, должны уделить время исходному коду. В остальном, это означает, что голова царапается и надеется, что сообщество может протянуть руку помощи.

Хотя электронная документация eZ Publish значительно улучшилась со времени версии 2.x, во многом благодаря усилиям и вкладу сообщества, все еще есть пробелы — предоставленный материал находится где-то между FAQ и справочным руководством; «большая картина» отсутствует.

Введите: «Learning eZ publish 3», написанное несколькими высокопоставленными членами сообщества eZ publish, которые знакомы с внутренностями eZ publish и имеют непосредственный опыт создания и развертывания сайтов с помощью eZ publish.

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

Глава 1: Установка eZ publish

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

Предполагается базовый уровень знаний: авторы ожидают, что у вас достаточно опыта для настройки PHP, Apache и MySQL (или у вас есть рабочая среда), и что вы знакомы с такими инструментами, как cron (хотя ни одно из этих знаний не сложно найти).

Описание установки сфокусировано на веб-установщике, который поставляется вместе с eZ publish, и объясняет важность выбора, который вы предлагаете. Учитывая эту информацию, в сочетании с некоторыми советами по распространенным проблемам, с которыми вы можете столкнуться при установке eZ publish, вы должны пережить процесс установки, не теряя сна.

Имейте в виду, что материал на этом этапе, похоже, предназначен для публикации в eZ 3.3, и процесс изменился в версии 3.4. В противном случае, в критической точке, много места, занимаемого этой главой, уходит на снимки экрана установщика, некоторые из которых можно было бы опустить, текстовое описание более чем адекватно.

Глава 2: Управление контентом с помощью eZ publish

Одним из аспектов eZ publish 3.x, который может быть трудным для понимания и пугающим для начинающих, является его подход к работе с контентом. Он использует структуру, которая является абстрактной как для самого контента, так и для схемы базы данных, в которой хранится контент.

В этой главе представлены основы. Он начинается с вопроса: «Что такое управление контентом?» затем исследуются ключевые термины и концепции в модели контента eZ publish: понятие «объекты контента» и их план «классы контента», а также их отношение к «дереву узлов». Также вводятся авторизация, разрешения и роли наряду с рабочими процессами, шаблонами и основными обязанностями администратора сайта, целью которых является дать читателю обзор.

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

Глава 3: Отображение контента с помощью шаблонов публикации в eZ

При создании сайта с публикацией в eZ большая часть усилий направляется на разработку и настройку шаблонов пользовательского интерфейса с помощью необработанного (X) HTML-кода.

«Learning eZ publish 3» посвящает целую главу исследованию механизма шаблонов, начиная с полезного концептуального обсуждения и полезных блок-схем, которые представляют страницу в терминах шаблонов, использованных для ее создания. Затем глава переходит к определению языка шаблонов: операторы, переменная область видимости, конструкции типа циклов и т. Д., А также обобщение функций «ядра», которые eZ публикует в механизме шаблонов.

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

Глава 4: Взгляд в ядро

Если вы хотите создавать сайты для кого-то, кроме вас, понимание того, что eZ Publish делает «за кулисами» шаблонов и инструментов администрирования, является идеальным, поскольку оно поможет вам оценить требования к производительности и области, в которых ваша поддержка или вмешательство может потребоваться.

Цель этой главы — познакомить читателя с дизайном eZ publish как приложения PHP. Впервые в тексте появляются фрагменты исходного кода PHP вместе с диаграммами UML, которые иллюстрируют отношения между классами и их роль в публикации eZ.

Предполагается знание PHP, и обсуждение сосредоточено на нескольких темах, специфичных для «ядра» публикации eZ (основной код PHP), таких как, как обрабатываются разрешения и как объекты PHP хранятся в базе данных.

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

Тем не менее, нет необходимости иметь полное представление о внутренностях eZ publish, чтобы иметь возможность создать успешный сайт с ним, и информация, представленная здесь, успешно закладывает основы для следующей главы …

Глава 5: Расширение публикации в eZ

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

В этой главе представлены основные детали, которые вам необходимо знать, чтобы разработать собственные расширения для публикации в eZ на PHP. Он начинается со структуры, используемой для организации расширений в файловой системе, а затем переходит к обсуждению того, как общие задачи, такие как перенаправление браузера и обработка шаблонов, обрабатываются в публикации eZ. Такие темы, как публикация в eZ и рабочие процессы, рассматриваются с точки зрения разработчика PHP, а в конце главы рассматривается проверка поддержки SOAP и RSS в публикации eZ.

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

Глава 6: Разработка расширений

Эта глава начинается с другой концептуальной основы, которая поможет вам «мысленно структурировать» процесс создания расширения публикации eZ. Затем он переходит к практическому примеру создания «Расширения WorldPay», которое позволит интернет-магазину обрабатывать платежи через WorldPay. Объяснение понятно и шаг за шагом ведет читателя к сборке. В этом примере также полезно расширить понятие рабочих процессов и триггеров публикации eZ.

Во втором примере рассматривается разработка нового «типа данных» публикации eZ (публикация eZ расширяет базовые типы, имеющиеся в PHP, с помощью таких типов данных, как «электронная почта», в качестве средства организации таких задач, как проверка). В ходе ознакомления с этапами разработки расширений дальнейшее внимание уделяется постоянным API eZ publish, служащим полезной иллюстрацией того, как работать с базами данных в eZ publish.

В оставшейся части главы обсуждается интеграция расширений с eZ publish в целом, а также рассматриваются возможности и стратегии повторного использования кода, что иллюстрирует это путем создания клиента SOAP, использующего службу поиска Google.

Примеры, представленные в этой главе, хорошо подобраны и хорошо объяснены, позволяя читателям познакомиться с API и элементами публикации eZ, с которыми им, вероятно, придется работать при создании расширения. В сочетании с предыдущими двумя главами, эта оправдывает цену книги, заполняя пробелы, в которых онлайновая документация неоднородна и не детализирована.

Глава 7: Развертывание eZ publish

Если в главе 1 основное внимание уделялось максимально быстрой установке и запуску работающей публикации eZ, в этой главе обсуждаются вопросы, связанные с развертыванием публикации eZ в реальной среде.

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

Вторая половина главы посвящена тому, как погасить первую, изучив технические проблемы, такие как управление резервными копиями баз данных и ускорителями PHP, которые, как было доказано, работают с публикацией в eZ. Предоставленная информация должна помочь новичкам в PHP, но я не могу сказать, что я лично нашел что-то особенно интересное, а диапазон упомянутых предметов слишком широк, чтобы подходить к ним с полезным уровнем детализации.

В целом, я бы сказал, что это самая слабая глава в книге. Лично мне бы хотелось больше обсуждать технические вопросы и «риски», характерные для публикации в eZ, в частности обсуждение поддержки публикации в eZ и того, как разработчик может решать такие проблемы, как импорт и экспорт контента в и из базы данных, и преодоление нарушенных внешних ограничений ключа в MySQL.

Глава 8: Центр дизайна в RMIT Case Study

В первом из двух тематических исследований рассматривается воссоздание веб-сайта Центра дизайна, который является частью Королевского технологического института Мельбурна. Конечный результат можно увидеть на http://www.cfd.rmit.edu.au/ .

Эта глава начинается с отступления от публикации в eZ. Во-первых, в нем рассматриваются требования к дизайну проекта, а также различные этапы проектирования интерфейса. Также рассказывается о процессе работы с клиентом, а также об успехах и трудностях на этом пути.

Качественно изучив проект, автор переходит к деталям реализации, специфичным для публикации в eZ, и заканчивает честными выводами, извлеченными уроками и оценкой времени, необходимого для достижения различных этапов реализации.

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

Глава 9: Создание веб-сайта eZ publish для подачи жалоб.

В последней главе книги, а также в тематическом исследовании, рассматривается замена существующего статического веб-сайта кафедры геоинженерии в Университетском колледже Лондона (UCL): http://www.ge.ucl.ac.uk/ на eZ публиковать.

Основное внимание в этом исследовании уделяется использованию шаблонов публикации eZ для создания пользовательского интерфейса, совместимого с XHTML и использующего CSS для отделения стиля от контента. В начале рассказывается о XHTML и CSS, большинство из которых не будут новостями для тех, кто часто посещает SitePoint, но о которых стоит упомянуть.

Рассмотрев проект в контексте, обсуждение переходит к требованиям к пользовательскому интерфейсу и структуре контента и переводит их в шаблоны публикации eZ. Приведенные примеры шаблонов должны оказаться полезными в качестве дополнительных фрагментов, из которых читатель может получить идеи; они также ценны, поскольку они предлагают работоспособную стратегию CSS для публикации в eZ, включая соглашения об именах и предпочтительные идентификаторы.

В конце главы рассматриваются вопросы производительности и подходы к кэшированию и оптимизации производительности eZ publish.

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

Кто должен читать это?

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

В зависимости от главы, которую вы читаете, требуется некоторое понимание PHP, и в идеале читатели должны иметь возможность управлять основными задачами, связанными с платформой, такими как работа с командной строкой UNIX и MySQL, а также настройка Apache. В то же время авторы старательно избегают повторного производства материала, который можно найти в глубине и в других местах, что позволило сосредоточиться на публикации в eZ.

Стиль и Чувство

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

Как и во всех технических книгах, написанных несколькими авторами, «Learning eZ publish 3» предоставляет читателю возможность извлечь выгоду из точек зрения и идей разных авторов за счет разрозненных контактов между предметами и главами. К счастью, «Learning eZ publish 3» хорошо структурирован, его главы организованы так, чтобы избежать повторений и позволить читателю перейти от более ранних материалов.

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

В общем

В целом, я думаю, что это хорошая книга. Он содержит много ценной информации, большая часть которой либо отсутствует в онлайн-документации, либо является слишком «специальной» для обеспечения четкого понимания. Книга умудряется склеить четкую структуру, подходящую для тех, кто работает с eZ publish.

Будьте готовы, чтобы установка eZ publish была легко доступна для взлома во время чтения книги, если вы хотите получить максимальную отдачу от нее.

Есть такие моменты, как Глава 7, в которой есть место для улучшений, но, надеюсь, эта книга продолжит развиваться вместе с публикацией в eZ. Некоторые другие вещи, которые было бы приятно видеть (в зависимости от стоимости публикации), — это ссылка на API публикации eZ в соответствии с книгами O’Reilly Nutshell и более глубокое понимание обслуживания сайта публикации eZ (касающегося обновлений, управление базой данных и т. д.). Последующие исследования, в которых рассказывается об опыте команды после того, как на сайтах появилось несколько миль в сети, также были бы полезны.

Итог: если вы заинтересованы в eZ publish 3, но разочарованы документацией , «Learning eZ publish» — это то, что вы ищете.

Детали

Learning eZ publish 3: Создание решений для управления контентом
Издатель: Packt Publishing
ISBN: 1-904811-01-9
Авторы: Пол Боргерманс, Тони Вуд, Пол Форсайт, Мартин Бауэр, Бьорн Дидинг, Бен Пирт
Страницы: 337 + 20 приложений