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

Статья опубликована в журнале «IT Спец» №11, ноябрь 2007.

IT Спец №11, ноябрь 2007
IT Спец, №11, ноябрь 2007

CMF вместо CMS

Несмотря на это, у всех CMS есть один минус — недостаточная гибкость в настройке. Зачастую разработчики систем управления контентом поставляют со своим детищем множество ненужных модулей, за которые приходится платить. А что если требуется организовать, скажем, портал определенной направленности? Например, новостной. На нем вовсе необязателен форум или гостевая книга. Минимум, что нужно для такого проекта: удобный интерфейс для создания новостных лент, плюс возможность передачи новостей клиентам с помощью популярных технологий (RSS, e-mail и т. д.). При таком раскладе куда проще взять специализированный фреймворк и реализовать весь необходимый функционал с его помощью. Это будет намного проще, удобнее и надежнее.

Для понимания реальной выгоды рассмотрим наиболее сильные стороны CMF:

  • экономия финансовых средств. Нет смысла покупать, если можно найти хорошую бесплатную альтернативу, на поддержку которой не потребуется больших вложений. В случае с фреймворком — экономия налицо. Берем лишь необходимые компоненты и используем в своих целях;
  • простота интеграции. Когда сайт уже готов и нужно добавить необходимую функциональность, гораздо проще перестроиться на CMF, нежели переходить на полноценную платформу CMS.

Надежность, гибкость, простота

Mzz (www.mzz.ru) — новая платформа для разработки web-приложений, основанная на классической идее разделения бизнес-логики и представления (MVC). Обладая необычайной гибкостью CMF, на основе данного пакета можно собрать практически любое приложение для web.

Особенности Mzz

Бесплатность

Весь фреймворк распространяется под лицензией LGPL, которая предоставляет свободу в применении.

Гибкость

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

Поддержка современных технологий

Новые технологии, входящие в понимание Web 2.0 (Ajax, Mash-up и т. д.), могут без проблем интегрироваться с Mzz.

Загрузка модулей из шаблонов

Мотивом для создания новой платформы стала идея загрузки модулей из шаблонов. Синтаксис функции load:

{load module="" action="" section="" <имя>="значение" ...}

Описание аргументов:

  • module — имя загружаемого модуля, обязательный параметр;
  • action — имя действия загружаемого модуля, обязательный параметр;
  • <имя>, ... — аргументы, передаваемые в запускаемый модуль;
  • section — имя раздела, в контексте которого будет запущен модуль, за счет чего достигается возможность обслуживания модулем различных разделов, обладающих одинаковой функциональностью.

Пример — выполнение действия list модуля «Новости» в текущей секции:

{load module="news" action="list"}

Меньше ошибок в коде

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

Собственный ORM

В Mzz используется собственная разработка ORM, базирующаяся на основе «The Data Mapper Pattern», позволяющая манипулировать доменными объектами системы.

CMS на основе Mzz

В будущем разработчики планируют выпустить свой вариант CMS на основе Mzz.

Готовые примеры

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

Системные требования

Mzz устойчиво работает как на Unix-, так и на Windows-серверах. Для работы фреймворка необходимо следующее программное обеспечение: интерпретатор PHP-версии не ниже 5.1.4, наличие PHP-модулей — PDO, PDO_MYSQL, PCRE, сервер баз данных MySQL 4 (желательно не ниже 4.1.x версии) или 5, Web-server Apache 1.x/2.x (с установленным модулем mod_rewrite) или IIS 6 (с установленным модулем rewrite).

Легко читаемый код

Весь код фреймворка написан в соответствии с парадигмой объектно-ориентированного программирования, поэтому профессиональным разработчикам не составит большего труда в нем разобраться.

Безопасность

Для повышения безопасности в ядре фреймворка реализованы методы для защиты от некоторых наиболее часто возникающих проблем, например воровство сессий, session fixation, поступление опасных данных и т. д.

Хорошая документированность

Хоть mzz и является бесплатным проектом, разработчики потрудились и написали хорошую документацию. В описании есть все необходимое для того, чтобы начать использовать данный framework. Как известно, проектов для open source скудная документация — основная проблема. Здесь она решена.

Термины

  • CMF (Content Management Framework) — фреймворк (набор инструментов, библиотек, API), предназначенный для построения собственной CMS.
  • ORM (Object-relational Mapping) — технология программирования, связывающая базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».
  • TDD (Test Driven Development) — техника программирования, используемая при «экстремальном программировании». Сначала готовятся тесты для программ, а затем уже пишется программа под них.

О проекте Mzz

На вопросы отвечает Иван Курносов — профессиональный Web-программист.

Расскажите немного о вашем проекте?

Основные идеи и концепции mzz были придуманы в сентябре 2005 года, когда каждый из нас вынашивал идею написания очередной универсальной CMS. И примерно в это время мы попробовали написать что-то совместно. Сперва мы рассматривали mzz лишь как полигон и способ набраться опыта в проектировании, но через полгода поняли, что получается весьма неплохо, и решили продолжить совместную деятельность. Сейчас mzz — проект с устоявшейся архитектурой, который мы и сами используем по назначению.

На каких клиентов ориентирован ваш проект?

Мы как девелоперы фреймворка mzz не делаем никаких коммерческих предложений, а просто даем возможность людям (программистам в первую очередь) посмотреть, как, по нашему мнению, стоит писать web-приложения. И если mzz будет востребован — этого будет вполне достаточно, чтобы сказать, что мы достигли той цели, к которой стремились.

Планируется ли в будущем сделать платную версию mzz?

Нет, не планировалось и не планируется. Мы приверженцы свободного и качественного ПО.

Как вы считаете, почему среди огромного числа абсолютно бесплатных CMS многие выбирают коммерческие решения (Bitrix, NetCat и т. д.)?

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

Одна из основных проблем разработчиков сетевых приложений – безопасность. Как обеспечивается безопасность конфиденциальных данных в mzz?

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

Сканы статьи

Страница журнала, часть 1 Страница журнала, часть 2 Страница журнала, часть 3
Страница журнала, часть 1
×
Страница журнала, часть 2
×
Страница журнала, часть 3
×