Вопрос-ответ

Популярные вопросы с ответами для владельцев и разработчиков сайтов

Joomla - это фреймворк?

Нет, 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 фреймворком.

0383

Сравнение Joomla с конструкторами (SitePro.by, Tilda)

Joomla ближе к фреймворку, чем конструкторы, но всё же это CMS. Конструкторы (SitePro.by, Tilda) не требуют хостинга (хостинг встроен) и полностью визуальны. Joomla требует хостинг и установку, но даёт больше гибкости. Фреймворк требует ещё больше гибкости и ещё больше программирования.

Когда Joomla называют фреймворком (и почему это неправильно)

Некоторые разработчики называют Joomla «фреймворком» в шутку или потому, что они используют Joomla как основу для своих проектов, сильно кастомизируя её код. Однако с технической точки зрения это остаётся CMS. Критерий прост: если вы можете установить систему и через админ-панель добавить статью, не написав кода — это CMS. Если после установки вы видите пустую папку и должны сами всё сделать — это фреймворк.

Резюме от эксперта

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