Content Management FrameworkContent 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 і 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]. Примітки
Література
Посилання
|