Содержание
Нет, Joomla — это не фреймворк. Joomla — это система управления содержимым (CMS, Content Management System), которая построена на базе фреймворка, но сама фреймворком не является. В отличие от фреймворка (например, Laravel, Symfony, Django), который даёт разработчику «каркас» для создания приложения, Joomla предоставляет готовую админ-панель, управление пользователями, меню, категории и расширения. Вы можете установить Joomla на хостинг и сразу начать добавлять статьи, не написав ни строки кода. Во фреймворке вам пришлось бы всё это программировать. Однако Joomla использует собственный фреймворк (Joomla Framework) для внутренней работы.
Разница между CMS и фреймворком
Чтобы понять, почему Joomla — не фреймворк, сравним их по ключевым признакам.
- Цель использования: CMS — готовая система для управления контентом, не требующая (или почти не требующая) программирования. Фреймворк — инструмент для разработки приложений «с нуля», требует написания кода.
- Что вы получаете после установки: CMS — работающий сайт с админ-панелью, где можно публиковать статьи, создавать меню. Фреймворк — пустую директорию с папками, нужно создавать модели, контроллеры, шаблоны.
- Расширяемость: В CMS функционал расширяется через установку компонентов, модулей, плагинов. Во фреймворке — через подключение библиотек и написание кода.
- Примеры: CMS — Joomla, WordPress, Drupal. Фреймворки — Laravel, Symfony, Django, Ruby on Rails.
| Признак | CMS (Joomla) | Фреймворк (Laravel) |
|---|---|---|
| Требует программирования для создания сайта | Нет (только для кастомизации) | Да |
| Готовая админ-панель | Да | Нет |
| Управление пользователями и правами из коробки | Да (ACL) | Нет (нужно реализовать) |
Joomla как продукт, построенный на фреймворке
Joomla сама по себе использует Joomla Framework — набор PHP-библиотек, который можно использовать независимо. Но это не делает Joomla фреймворком. Это «движок», на котором работает CMS. Аналогия: автомобиль (Joomla) построен на шасси и двигателе (фреймворк), но автомобиль не является шасси.
Разработчики Joomla могут создавать компоненты и модули, не трогая ядро, но они всё равно работают в парадигме CMS (используя API Joomla, расширяя её). Во фреймворке же вы сами определяете, как будут выглядеть маршруты и контроллеры.
Почему важно не путать Joomla с фреймворком
Эта путаница может привести к неправильному выбору инструмента.
- Если вы предприниматель и вам нужен сайт под ключ (интернет-магазин, портал), вы ищете CMS (Joomla, WordPress).
- Если вы разработчик и вам нужно создать уникальное веб-приложение, которое не вписывается в рамки CMS (сложная бизнес-логика, интеграция с внешними системами), вы выбираете фреймворк (Laravel, Symfony).
Некоторые люди путают Joomla с фреймворком из-за того, что для её расширения нужно знание PHP (как и для работы с фреймворком). Но это не делает Joomla фреймворком — так же, как установка плагинов в WordPress не делает WordPress фреймворком.

Сравнение Joomla с конструкторами (SitePro.by, Tilda)
Joomla ближе к фреймворку, чем конструкторы, но всё же это CMS. Конструкторы (SitePro.by, Tilda) не требуют хостинга (хостинг встроен) и полностью визуальны. Joomla требует хостинг и установку, но даёт больше гибкости. Фреймворк требует ещё больше гибкости и ещё больше программирования.
Когда Joomla называют фреймворком (и почему это неправильно)
Некоторые разработчики называют Joomla «фреймворком» в шутку или потому, что они используют Joomla как основу для своих проектов, сильно кастомизируя её код. Однако с технической точки зрения это остаётся CMS. Критерий прост: если вы можете установить систему и через админ-панель добавить статью, не написав кода — это CMS. Если после установки вы видите пустую папку и должны сами всё сделать — это фреймворк.
Резюме от эксперта
Joomla — это CMS, а не фреймворк. Несмотря на то, что она требует некоторых технических знаний для настройки и написания расширений, её главная цель — дать готовый сайт с админ-панелью. Если вам нужен корпоративный портал с разными типами контента и редакторами, Joomla подойдёт. Если вам нужно высоконагруженное кастомное приложение с уникальной логикой, берите фреймворк (Laravel, Symfony). Не путайте эти понятия, чтобы не ошибиться с бюджетом и сроками.