Примером такого приложения и является Zope.
Zope – сервер веб-приложений на языке Python Zope — сервер веб-приложений, написанный языке программирования Python и предназначенный для создания систем управления контентом, интранет-приложений, порталов и прочих проектов. Так, по крайней мере поясняют сами разработчики Zope, но такое описание весьма расплывчато. Положение отягощает также и то, что русскоязычной документации по Zope практически нет, а та, которая есть, оставляет тяжелое впечатление. Тем не менее в России есть провайдеры, которые уже предоставляют услуги хостинга с Zope (например, square.spb.ru) или ставят его для клиента по договоренности. Так как Zope относится к классу продуктов с открытым кодом, то получить и установить его на вашей машине не составляет трудности. Он есть во всех дистрибутивах UNIX-подобных систем (Linux, семейство BSD), а для Windows его можно взять на сайте разработчиков — www.zope.org.
Самая большая ценность Zope заключается в том, что он существенно ускоряет построение даже простых сайтов, не говоря уже о задачах с повышенной сложностью. Автоматически снимается проблема создания пользователей и делегирования им прав по редактированию контента, а инструменты, с помощью которых создается сайт, могут служить, после делегирования соответствующих прав пользователям, и как система управления контентом.
Контейнер – основа концепции Zope Основная смысловая единица Zope — контейнер. С одной стороны — это директория, в которой хранятся объекты, но свойства этого контейнера и методы управления им позволяют весьма гибко пользоваться этой единицей хранения информации. Как создать, например, новостную колонку? Создаем контейнер, в котором будут создаваться текстовые файлы для каждой новости, а в родителе (контейнере более высокого уровня) этого контейнера пишем небольшой скрипт (даже не скрипт; пользуемся языками разметки Zope — 2-3 строчки), позволяющий вывести ссылки на файлы или содержание этих файлов на веб-страницу, сортируя их по дате создания файла. Можно создать специальные свойства для этих файлов, помимо типовых, и производить сортировку по ним. После этого создаем пользователя, наделенного правами редактировать только этот контейнер, создавая файлы с новостями, и отдаем наполнение колонки в его руки. Он заходит на страницу вида /redir.php?url=127.0.0.1%3A8080%2Ftexts%2Fmanage%3C%2Fb%3E (manage — это страница с интерфейсом управления, предоставляемой Zope) и создает там тексты. Можно, естественно, запретить создание новых объектов в контейнере, а разрешить только редактирование существующих.
В Zope богатый набор инструментов для программирования Zope предоставляет хороший инструментарий и для программиста. Есть два языка для использования совместно с тегами HTML — DTML и ZPT. Язык тегов DTML (Document Template Markup Language) позволит очень быстро создавать динамические страницы даже человеку, мало знакомому с языками программирования. ZPT (Zope Page Templates) создан для обеспечения полной совместимости с XML; на нем создавать сайт уже посложнее, но совместимость того стоит. Также данный язык рекомендуется для задач «разделения контента и дизайна». Уже эти инструменты — тегообразные языки программирования, позволяют решить много задач, но в Zope можно использовать и полноценный скриптовый язык Python, а в новых версиях появилась поддержка и такого языка, как Perl. Большие возможности предоставляет технология Acquisition, способная видеть объекты более высоких уровней в подчиненных контейнерах, что позволяет, например, создавать один метод в корневом объекте и использовать его во всех ветках структуры объектов.
Если вы не хотите создавать свою систему с нуля, то можно воспользоваться готовыми системами управления контентом, реализованными на Zope — например, Plone, которую можно также получить у ее разработчиков — www.plone.org. Многие просто берут и ставят Plone, не делая попыток даже изменить дизайн, создавая сайты-близнецы.
Каждый инструмент хорош для своих целей Но, как и другой любой инструмент, Zope пригоден для определенного круга задач. Он очень хорош для работы с разнородной информацией в виде текстовых файлов и рисунков, когда надо создать разнообразные структуры для их хранения, разграничив к ним доступ, обеспечить систему для их управления, создать полноценный поиск. А вот если вы используете базы данных в вашем проекте, то, возможно, Zope будет не самым лучшим выбором. Это не значит, что в нем нет возможностей для работы с ним (как раз наоборот), просто существуют другие инструменты, более удобные для для работы с ними. Иначе говоря, среда Zope — это и есть некая база данных для хранения информации оптимизированная для информации с определенной структурой, и присоединять к ней другие базы данных можно, но имеет ли это смысл? Мы потерям все преимущества Zope, которые можно использовать при работе с ее контейнерами.
Недостатки Zope Как уже упоминалось выше, главным недостатком Zope является отсутствие какой-либо документации особенно на русском языке. Большинство разработчиков пользуется классической ZopeBook на английском языке. Также не способствует популярности основной язык Zope — Python, поскольку он не столь распространен в нашей стране. Добавление Perl как дополнительного скриптового языка, думаю, не решит этой проблемы, так как сам Zope уже создан на Python, и скрипты на нем сидят как родные, а с Perl «выжать» такую же отдачу будет сложнее. И хотя провайдеры с поддержкой Zope есть, но их не такое количество, чтобы имя Zope было на слуху — это, естественно, не способствует ее популярности.
Ссылки по теме
Статья получена: hostinfo.ru