Content Management Framework

Матеріал з Вікіпедії — вільної енциклопедії.
Jump to navigation Jump to search

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[en]. З'явилась тенденція використовувати як базис для побудови системи керування змістом 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.
  2. а б в г Samisa Abeysinghe. Ch 3. Dealing with Complexity → Frameworks to simplify complexity // PHP Team Development. — Packt[en], 2009. — P. 58-68. — 183 p. — 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.
  4. What is Zope CMF?
  5. TomatoCMS
  6. Колисниченко Денис Николаевич. Выбираем лучший бесплатный движок для вашего сайта. CMS Joomla! и Drupal. — БХВ-Петербург, 2010-01-01. — 288 с. — ISBN 9785977505970.
  7. Angela Byron, Addison Berry, Bruno De Bondt. Using Drupal. — "O'Reilly Media, Inc.", 2012-04-10. — 495 с. — ISBN 9781449336158.
  8. Matt Butcher, Larry Garfield, John Wilkins. Drupal 7 Module Development. — Packt Publishing Ltd, 2010-12-03. — 822 с. — ISBN 9781849511179.
  9. Jennifer Hodgdon. Programmer's Guide to Drupal: Principles, Practices, and Pitfalls. — "O'Reilly Media, Inc.", 2015-10-13. — 339 с. — ISBN 9781491912621.
  10. Liran Tal. Drupal 7 Media. — Packt Publishing Ltd, 2013-01-01. — 385 с. — ISBN 9781849516099.

Література[ред.ред. код]

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