Content Management Framework
Content Management Framework (CMF) — это фреймворк для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб-приложения. ПреимуществаЕсли основной задачей универсальных систем управления контентом является простота создания веб-сайта без вмешательства разработчика, то есть веб-дизайнера, то фреймворк управления контентом - это конструктор систем управления контентом (в том числе узкоспециализированных) для разработчика. Благодаря такому подходу сайт, созданный с использованием фреймворка, по сравнению с сайтом, основанным на системе управления контентом, может иметь более простую и безопасную панель администрирования (в которой отсутствуют функции настройки сайта для каких-либо задач) и быть менее требовательным к системным ресурсам (каждый модуль реализует именно те функции, которые необходимы на компьютере). рабочее место). При наличии хорошо продуманного фрейма и готовых модулей разработчику остается только собрать эти модули в единое пространство и оформить вывод в соответствии с пожеланиями клиента, то есть разработка веб-сайта на основе фрейма вполне сопоставима по сложности с разработкой веб-сайта на основе фреймворка сайт основан на универсальной системе управления контентом[1]. Трудности могут возникнуть, если программист-пользователь фреймворка столкнется с программными ошибками при их реализации и, не будучи экспертом в архитектуре фреймворка, у него могут возникнуть трудности с их обнаружением, он не может быть уверен, допустил ли он ошибку сам или столкнулся с ошибкой в фреймворке. Глубокие знания архитектуры фрейма также могут потребоваться при его тонкой настройке, если разработчик хочет получить максимальную производительность[2]. АрхитектураФреймворки веб-приложений обычно обеспечивают механизмы доступа к базе данных, шаблонизации и управление сессиями[англ.][3]. Большинство современных фреймворков управления содержимым являются реализацией архитектуры Model-View-Controller. Веб-фреймворк обеспечивает бесшовную интеграцию всех трёх слоёв MVC архитектуры. Фреймворки скрывают от программиста детали подключения к базе данных и формирования веб страниц с помощью шаблонов-представлений, позволяя программисту сконцентрироваться на реализации бизнес-логики[2]. Процесс создания приложения с использованием MVC-фреймворка заключается в написании классов контроллеров, моделей и представлений, каждый из которых является наследником базовых классов для компонентов каждого слоя. Многие веб-фреймворки обеспечивают полуавтоматическое создание прототипа веб-приложения, выполняющего основные операции с данными (создание, чтение, обновление, удаление) с помощью метода метапрограммирования — скаффолдинга. Важные характеристики фреймворка
Граница между фреймворком и системой управления содержимымМногие современные системы управления содержимым (CMS) построены вокруг MVC-паттерна. Такой фреймворк может быть специально написан для системы, примерами могут являться: Joomla! (начиная с версии 1.5), Bitrix (начиная с версии 6), MODX Revolution (начиная с версии 2.0), SilverStripe, Contao, Frog CMS/Wolf CMS ведётся постепенный перевод на такую архитектуру TYPO3. Другие системы используют фреймворки, популярные сами по себе. Так, написанная на языке Python система управления содержимым Plone построена на основе объектно-ориентированного сервера приложений Zope (и его расширения — CMF[4]), коммерческая CMS ExpressionEngine использует свободный фреймворк CodeIgniter того же автора. CMS eZ publish основана на фреймворке eZ Components[англ.], изначально того же разработчика (сейчас передан Apache Foundation и переименован в Zeta Components[англ.]). В последнее время появилась тенденция использовать в качестве базиса для построения системы управления содержанием Zend Framework: примерами могут служить вошедшие в финал Packt Open Source Awards — 2010 в категории «самые многообещающие CMS» Pimcore[англ.] и Tomato CMS[5], а также Concrete5, отмеченная в 2011 Open Source CMS Market Share Report, как самая быстрорастущая CMS. Выпущенная в конце 2014 года восьмая версия Drupal также построена вокруг Symfony. Ряд cистем управления содержимым, предоставляющих интерфейс программирования приложений для расширения своей функциональности, претендуют на звание фреймворка, хотя провести чёткую границу между системой и фреймворком порой сложно. Основным отличием является то что используя систему можно построить сайт не написав ни одной строчки кода[источник не указан 3268 дней]. Такая готовая к использованию система управления контентом, как Drupal, одновременно считается и каркасом для построения таких систем[6], что определяется как возможностью расширения функционала за счёт пользовательских модулей[7][8][9], так и богатством механизмов и абстракций для управления контентом, предоставляемым этой системой[10]. Примечания
Литература
Ссылки
|