Возможно еще не все осознали, но Joomla давно разделилась на две части — Joomla CMS и Joomla Framework. Последний имеет версию 11.4, но усиленно пилится версия 12.1. Изначально планировалось, что фреймворк будет выходит раз в квартал, однако в этот год решили выпустить только три версии — 12.1, 12.2, 12.3. Соответственно, 12.1 выйдет 18 апреля. Что же нас в ней ждет?
- Серьезной переработке подверглась часть работы с базами данных. Пакет <a rel="nofollow" href="https://github.com/joomla/joomla-platform/tree/staging/libraries/joomla/database">DATABASE можно сказать полностью переписан. Пока существуют драйверы для работы с MYSQL,MYSQLI,ORACLE,PDO,SQLITE, а также SQL SERVER и SQL AZURE. Драйвер под PostgreSQL усиленно пилится — раз, два и три
- Новый пакет HTTP, куда попала функциональность, связанная с HTTP-протоколом, в частности потоки, сокеты, CURL. Класс для получения и работы со всем этим называется JHTTPFactory и находится в /libraries/joomla/http/factory.php
- Добавлен класс JStringInflector (Joomla/String/Inflector.php). Позволяет производить разные действия со словами, например узнавать их число, переводить в единственное/множественное число. Пока поддерживается только английский язык, но есть возможность добавлять свои правила единственного-множественного числа (в виде регэкспов, функция _addRule)
- Появился новый пакет CRYPT (Joomla/Crypt) с поддержкой методов шифрования 3DES/BLOWFISH/RIJNDAEL256/SIMPLECRYPT. Старое шифрование (joomla/utilities/simplecrypt.php) объявлено DEPRECATED и перенаправляется на новую библиотеку. Для шифрования используется расширение PHP mcrypt.
- В классе JDocument появился новый подкласс JDocumentImage, отвечающий за рендеринг изображений. Правда пока он просто вызывает parent::render, предварительно определив MIME-тип картинки по расширению.
- Создан файл libraries/import.legacy.php, который импортирует некоторые deprecated-файлы, и содержимое папки libraries/legacy. Туда было перенесено много чего устаревшего, и все содержимое папки libraries/cms (так как joomla-cms это отдельный проект, и не должен находиться в платформе). Теперь если вам нужны deprecated-возможности платформы, в своем приложении вы импортируете файл import.legacy.php, если же только не-deprecated, то import.php, как обычно. Joomla CMS пока будет импортировать legacy-код, полностью избавиться от него планируется через год-два
- Класс JApplication (joomla/application/application.php), как видно по ссылке из предыдущего пункта, тоже объявлен legacy. Предложено пользоваться JApplicationWeb, JApplicationCli или JApplicationDaemon. Однако CMS об этом еще не знает и пользуется JApplication.
- Патчер файловой системы по DIFF-файлам (libraries/joomla/filesystem/patcher.php). Взят из проекта phppatcher
- Добавлена возможность использования memcached в качестве кеша
- Библиотека Mootools обновлена до версии 1.4.4, совместимость с версией 1.2 больше не поддерживается. PHPMailer также обновлен до версии 5.2.1
Что планируется в будущем:
- Новый FEED-класс. Пока Joomla пользуется библиотекой SimplePie.
- Поддержка PostgreSQL
- Пакет SEARCH. Тот компонент, который сейчас есть в CMS (COM_SEARCH) совсем не удовлетворяет нужды пользователей.
- Пакет STREAMS для работы с потоками (seek, fstat, flush, lock), разными видами кэшей (xcache, wincache)
- Пакет COMMERCE – корзина пользователя, заказы, оплата (пока paypal).
Кроме того, некоторое время назад eBay запустила на Joomla один из своих проектов. Естественно, eBay очень много в ней переделала, и теперь хочет поделиться с сообществом. Что нас ждет вкратце описано здесь. Нововведений там много, просто включить их довольно затруднительно, поэтому включать будут не скоро и постепенно.
Автор: blueboar2