Аналитические статьи

Разница между Joomla Framework и Joomla Platfrom

Joomla
Добавление в избранное
Сохранить

raznitsa-mezhdu-joomla-framework-i-joomla-platfrom

Joomla Framework (Фреймворк) – это своего рода следующее поколение Joomla Platform (Платформа). Основным его отличием является поддержка пространства имен и возможность установки с помощью Composer (в виде отдельных пакетов).

Немного истории

Давайте посмотрим, как развивались события, которые привели к появлению Joomla Framework. Вот несколько ключевых тем из Google группы Joomla! Platform Development:

Следующее поколение

Из истории видно, что в Платформе назревали большие изменения. Но эти изменения были несовместимы с CMS и существующей Платформой. Внедрение этих изменений привязало бы CMS к текущей версии Платформы 12.3 без возможности использования новых версий. Было принято решение разделить Платформу, в результате возникла «новая Платформа» или Joomla Framework.

Joomla Framework – это возможность для дальнейшего развития. Он может быть использован не только CMS и теми, кто пишет приложения на Joomla Platform, но и более широким PHP сообществом. Это уход от своеобразного монолита. Фреймворк, который построен на компонентах (отдельных пакетах) позволяет пользователям легко добавлять и тестировать, а также интегрировать код.

Означает ли это, что Платформа будет поглощена CMS?

Можно сказать что да. Вся работа, которая была сделана на сегодняшний день (исключая пространство имен), может быть поглощена CMS. И это хорошо для CMS, так как больше не придется исправлять ошибки в двух местах, так как сейчас CMS вынуждена исправлять баги как в своем репозитории, так и в репозитории Платформы. Другими словами CMS будет поддерживать свою копию Платформы. Разработчики, которые работают над CMS будут продолжать свою работу над CMS. В будущем CMS может обновить свой код, включив в него необходимые ей части Фреймворка, и с легкостью синхронизировать их между версиями CMS.

Нужно ли будет переписывать расширения для следующей версии CMS?

Нет, так как появление Фреймворка не позволит такому случится. Да, CMS может взять на себя смелость и внедрить отдельные части Фреймворка, но, скорее всего, сделает это без проблем совместимости с существующими расширениями.

Однако важно отметить, что Joomla Framework не будет обратно совместим с Joomla Platform. Сейчас идет чистка всего устаревшего кода, а также удаление оставшегося CMS кода и слабо поддерживаемых пакетов. Это правильная стратегия, так как переход на пространство имен и Composer в любом случае означает то, что придется начинать с нуля.

В какой версии CMS мы увидим Фреймворк?

Пока ни в какой. CMS возьмет все наработки из текущей Joomla Platform и вероятнее всего Платформа больше не будет поддерживаться как отдельная сущность. Вся новая работа будет происходить внутри CMS. Но это не значит, что CMS не сможет использовать Фреймворк. Просто на данный момент ее архитектура не позволяет этого сделать.

А вот как видит будущее CMS один из главных участников сообщества Joomla! - Michael Babker. Полностью его пост вы можете прочитать в статье «Joomla! 4.0 or Next, Joomla! Platform or Framework, WTF is going on!?», а я лишь приведу его основную мысль:

Если бы я был главным по части разработки, я бы «списал» текущую CMS архитектуру в конце жизни серии 4.x, которая придется на конец 2016 года. В 2014 году, когда выйдет релиз 4.0, я бы выпустил Joomla! Next, которая была бы построена с нуля на Фреймворке. Для того, чтобы поддержать обратную совместимость, я бы использовал 4.x как переходный уровень между двумя приложениями. Цель – расширения должны работать на 3.5 и 4.x или 4.x и Next с небольшими проблемами, но не на 3.5 и Next одновременно. Кроме того я бы приложил все усилия для того, чтобы сохранить существующую инфраструктуру расширений на месте, так как это то, на чем Joomla! делает свои деньги.

Зачем менять имя и создавать другой репозиторий, если такой уже есть для Платформы?

Изменение имени и создание нового репозитория позволяет четко разграничить монолитную Joomla Platform и новый Joomla Framework с поддержкой пространства имен и Composer. Это большое изменение, но беспокоится не о чем. Просто так проще, так как Платформа будет поддерживаться еще какой-то период времени. На 2013 год запланировано как минимум три итерации Платформы. Работа над двумя проектами внесла бы хаос в единый репозиторий.

Кроме того, каждый пакет был разбит на свой репозиторий для возможности установки через Composer. Например, кто-то, программируя на Laravel, может использовать JGithub. На данный момент такое невозможно осуществить с Платформой, но зато такое возможно с Фреймворком.

Значит можно использовать Composer и Packagist с Фреймворком?

Composer и его компаньон Packagist, стали стандартом де-факто для интеграции PHP библиотек в приложения. Joomla Framework должен подстроится под эту парадигму и позволить пользователям, пишущим приложения Joomla, облегчить задачу использования других библиотек, которые доступны через Composer.

Это действительно большое изменение. Сейчас Платформа не распространяется. Просто отмечается тегами, и пользователи могут клонировать репозиторий. Но на этом все. А Composer и Packagist означают для Фреймворка то же самое, что и страница загрузки для CMS. Это послание для всего PHP сообщества – вот наш код для использования. Это возможность повысить осведомленность о Joomla как о чем-то большем, чем просто CMS. Поэтому параллельно работе над пространством имен текущая Платформа была разбита на отдельные пакеты, которые опубликованы в Composer и могут быть установлены с помощью Packagist.

Где можно найти Joomla Framework?

Зайдите на https://github.com/joomla и обратите внимание на репозитории, название которых начинается с joomla-framework.

По материалам:

Dmitry Rekun
Работаю в банковской сфере, а с веб-разработкой (непосредственно с Joomla) столкнулся в 2007 году. Теперь это моё хобби, а в редких случаях и вторая работа. Какое-то время вёл свой блог, но решил попробовать работать в команде. И вот c 2012 года я здесь :)

Подпишитесь на рассылку новостей CMScafe