Interested Article - Content Management Framework

Content Management Framework (CMF) — это фреймворк для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб-приложения .

Преимущества

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

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

Архитектура

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

Большинство современных фреймворков управления содержимым являются реализацией архитектуры Model-View-Controller . Веб-фреймворк обеспечивает бесшовную интеграцию всех трёх слоёв MVC архитектуры. Фреймворки скрывают от программиста детали подключения к базе данных и формирования веб страниц с помощью шаблонов -представлений, позволяя программисту сконцентрироваться на реализации бизнес-логики .

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

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

Важные характеристики фреймворка

  • Размер. При выборе фреймворка управления содержимым стоит обращать внимание на такие факторы, как его размер. Если он слишком велик и фреймворк не имеет легко разделяемой модульной архитектуры, это может неоправданно увеличить размер приложения. Компактность фреймворка может вступить в противоречие с широтой возможностей, которые он предоставляет .
  • Производительность — другая важная на практике характеристика веб-фреймворка. Она может косвенно зависеть от размера, особенно для интерпретируемых языков подобным PHP . Следует оценивать производительность фреймворка в таких единицах, как количество обрабатываемых в секунду запросов .

Граница между фреймворком и системой управления содержимым

Многие современные системы управления содержимым (CMS) построены вокруг MVC-паттерна. Такой фреймворк может быть специально написан для системы, примерами могут являться: Joomla! (начиная с версии 1.5), Bitrix (начиная с версии 6), MODX Revolution (начиная с версии 2.0), SilverStripe , Contao , Frog CMS / Wolf CMS ведётся постепенный перевод на такую архитектуру TYPO3 . Другие системы используют фреймворки, популярные сами по себе. Так, написанная на языке Python система управления содержимым Plone построена на основе объектно-ориентированного сервера приложений Zope (и его расширения — CMF ), коммерческая CMS ExpressionEngine использует свободный фреймворк CodeIgniter того же автора. CMS eZ publish основана на фреймворке (англ.) , изначально того же разработчика (сейчас передан Apache Foundation и переименован в (англ.) ). В последнее время появилась тенденция использовать в качестве базиса для построения системы управления содержанием Zend Framework : примерами могут служить вошедшие в финал Packt Open Source Awards — 2010 в категории «самые многообещающие CMS» (англ.) и , а также Concrete5 , отмеченная в 2011 Open Source CMS Market Share Report, как самая быстрорастущая CMS. Выпущенная в конце 2014 года восьмая версия Drupal также построена вокруг Symfony .

Ряд cистем управления содержимым , предоставляющих интерфейс программирования приложений для расширения своей функциональности, претендуют на звание фреймворка, хотя провести чёткую границу между системой и фреймворком порой сложно. Основным отличием является то что используя систему можно построить сайт не написав ни одной строчки кода [ источник не указан 2923 дня ] .

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

Примечания

  1. Дмитрий Попов. // PHP Inside. — phpclub.ru, 2004. — № 7 . — С. 97-107 . 7 мая 2006 года.
  2. Samisa Abeysinghe. Ch 3. Dealing with Complexity → Frameworks to simplify complexity // PHP Team Development. — (англ.) , 2009. — P. 58-68. — 183 p. — ISBN 978-1-847195-06-7 .
  3. Rokas Firantas, Martynas Jusevičius. . — IT University of Copenhagen, 23 November — 20 December 2006. 5 ноября 2012 года.
  4. Дата обращения: 3 сентября 2014. Архивировано из 6 марта 2016 года.
  5. . Дата обращения: 8 февраля 2012. Архивировано из 27 августа 2016 года.
  6. Колисниченко Денис Николаевич. . — БХВ-Петербург, 2010-01-01. — 288 с. — ISBN 9785977505970 . 16 марта 2022 года.
  7. Angela Byron, Addison Berry, Bruno De Bondt. . — "O'Reilly Media, Inc.", 2012-04-10. — 495 с. — ISBN 9781449336158 . 16 марта 2022 года.
  8. Matt Butcher, Larry Garfield, John Wilkins. . — Packt Publishing Ltd, 2010-12-03. — 822 с. — ISBN 9781849511179 . 16 марта 2022 года.
  9. Jennifer Hodgdon. . — "O'Reilly Media, Inc.", 2015-10-13. — 339 с. — ISBN 9781491912621 . 16 марта 2022 года.
  10. Liran Tal. . — Packt Publishing Ltd, 2013-01-01. — 385 с. — ISBN 9781849516099 . 16 марта 2022 года.

Литература

  • Martin Brampton. PHP5 CMS Framework Development. — PACKT publishing, June 2008. — 328 p. — ISBN 978-1-847193-57-5 .
  • Samisa Abeysinghe. Ch 3. Dealing with Complexity → Frameworks to simplify complexity // PHP Team Development. — (англ.) , 2009. — P. 58-68. — 183 p. — ISBN 978-1-847195-06-7 .
  • Дмитрий Попов. // PHP Inside. — phpclub.ru, 2004. — № 7 . — С. 97-107 . 7 мая 2006 года.
  • Денис Баженов. // PHP Inside. — phpclub.ru, 2004. — № 9 . — С. 5-18 . (недоступная ссылка) , Денис Баженов. // PHP Inside. — phpclub.ru, 2005. — № 11 . — С. 5-11 . (недоступная ссылка)
  • Йен Маурер. = Python Web frameworks, Part 1: Develop for the Web with Django and Python. — IBM developerWorks. , = Part 2: Web development with TurboGears and Python. — IBM developerWorks.
  • Julia Plekhanova. // The IBIT Report. — Temple University, September 2009.

Ссылки

  • , Choose your programming language to compare web frameworks
Источник —

Same as Content Management Framework