Content Management Framework (CMF) — це каркас (фреймворк програмної системи) для проектування систем управління контентом. На їхній основі створюють системи управління вмістом (CMS), а також вебдодатки.

Переваги ред.

Якщо основне завдання універсальних CMS — простота створення сайту без втручання програміста, тобто — конструктор сайтів, то CMF — це конструктор CMS (у тому числі спеціальних) для програміста. Завдяки такому підходу сайт, створений за допомогою CMF, порівняно з сайтом на базі CMS, може мати більш просту і безпечну у роботі адміністративну панель (в якій відсутні функції налаштування сайту під будь-які функції) і бути менш вимогливим до ресурсів системи (кожен модуль реалізує саме ті функції, які необхідні в роботі сайту). За наявності грамотно спроектованої CMF і готових модулів, програмісту залишається тільки збірка цих модулів в єдиний простір та оформлення висновку у відповідності з побажаннями клієнта, тобто розробка сайту на основі CMF цілком порівнянна по трудомісткості з розробкою сайту на універсальній CMS[1].

Складності можуть виникнути, якщо програміст-користувач фреймворку зіткнеться з програмними помилками в його реалізації. Непрофесіонал може не бути певним, чи зробив помилку сам, або зіткнувся з помилкою в CMF. Глибокі знання архітектури фреймворку можуть знадобитися і для його тонкого налаштування, якщо програміст бажає отримати максимальну продуктивність[2].

Архітектура ред.

Фреймворки вебдодатків зазвичай забезпечують механізми доступу до бази даних, шаблонізації і управління сесіями[en][3].

Більшість сучасних CMF є реалізацією архітектури Model-View-Controller. Вебфреймворк забезпечує безшовну інтеграцію всіх трьох шарів архітектури MVC. Фреймворки приховують від програміста деталі підключення до бази даних і формування вебсторінок за допомогою шаблонів-уявлень, дозволяючи програмістові сконцентруватися на реалізації бізнес-логіки[2].

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

Багато вебфреймворки забезпечують напівавтоматичне створення прототипу вебпрограми, що виконує основні (CRUD) операції з даними шляхом скаффолдинга.

Важливі характеристики фреймворку ред.

  • Розмір. При виборі CMF варто звертати увагу на такі фактори, як розмір фреймворка. Якщо фреймворк занадто великий і не може легко розділятись на модульну архітектуру, це може невиправдано його ускладнити. Компактність фреймворку може  заважати широті можливостей, які він надає[2].
  • Продуктивність — інша важлива характеристика вебфреймворка. Вона може залежати від розміру, особливо для інтерпретованих мов на кшталт PHP. Слід оцінювати продуктивність фреймворку в таких одиницях, як кількість оброблюваних запитів в секунду[2].

Межа між CMF і CMS ред.

Багато сучасних систем управління вмістом побудовано навколо MVC-патерну. Такий фреймворк може бути спеціально написаним для системи, прикладами можуть бути: Joomla! (починаючи з версії 1.5), Bitrix[ru] (починаючи з версії 6), MODx Revolution (починаючи з версії 2.0), SilverStripe, Contao, Frog CMS/Wolf CMS, ведеться поступовий переклад на таку архітектуру TYPO3. Інші системи використовують фреймворки, популярні самі по собі. Так, написана на Python CMS Plone побудована на основі Zope (і його розширення — CMF[4]), комерційна CMS ExpressionEngine використовує вільний фреймворк CodeIgniter того ж автора. CMS eZ publish базується на фреймворку eZ Components[en], спочатку того ж розробника (переданий Apache Foundation і перейменований в Zeta Components. З'явилася тенденція використовувати як базис для побудови системи керування змістом Zend Framework: прикладами можуть служити Pimcore і Tomato CMS[5], а також Concrete5, що 2011 в Open Source CMS Market Share Report позначена як найдинамічніша CMS. Випущена в кінці 2014 року восьма версія Drupal також побудована навколо Zend Framework.

Ряд CMS, що надають API для розширення своєї функціональності, претендують на звання CMF, хоча провести чітку межу між CMS і CMF деколи складно. Основною відмінністю є те, що на CMS можна побудувати сайт, не написавши жодного рядка коду16[джерело?].

Така готова до використання система управління контентом, як Drupal, одночасно вважається і каркасом для побудови таких систем[6], що визначається як можливістю розширення функціоналу за рахунок користувацьких модулів[7][8][9], так і багатством механізмів і абстракцій для управління контентом, що надається цією системою[10].

Примітки ред.

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

Література ред.

Посилання ред.