====== Limb 2.4-alpha2 release ====== **Статус - выпущен.** [[http://trac.limb-project.com/limb/browser/2.x/tags/2.4-alpha2/CHANGELOG|CHANGELOG]] , [[http://sourceforge.net/project/showfiles.php?group_id=109345&package_id=118079&release_id=377063|скачать]] ===== Краткое описание ===== Это второй альфа релиз новой ветки LIMB 2.4, в котором исправлено большое число ошибок и добавлен новый функционал. Стоит выделить следующие наиболее важные изменения: * совместимость с PHP-4.4.x * переработка locale констант: использование единственной LOCALE_ID константы * 'locale_id' аттрибут удален из site_object * сессия пользователя жестко связана с его ip * исправление работы транзакций драйверов баз данных * JIP с использованием AJAX * новые теги , , , , * новый эксперементальный низкоуровневый доступ к системе через CLI ==== Совместимость с PHP-4.4.x ==== Мы старались найти и исправить все проблемматичные места в коде, которые приводили к warning в PHP-4.4.x(по крайней мере тесты выполняются без ошибок). Однако, в виду частичного покрытиями тестами, мы пока не даем полной гарантии того, что код полностью совместим с новыми версиями PHP4. ==== Переработка locale констант ==== Запутанные константы CONTENT_LOCALE_ID и MANAGEMENT_LOCALE_ID ушли в прошлое, на смену им пришла единственная константа LOCALE_ID. Именно она определяет, какие установки locale действительны в текущий момент обработки запроса. Для большей гибкости LOCALE_ID, возможно, в будущем будет глобальной переменной. ==== 'locale_id' аттрибут удален из site_object ==== Данный аттрибут себя морально изжил в виду перехода на UTF-8. К тому же, правильнее было бы его называть translation_id, однако пока функционала для множественных переводов объектов у нас нет, от него стоит избавиться. ==== Привязка сессии к ip адресу ==== В целях повышения безопасности сессия пользователя жестко привязана к его ip адресу, что уменьшает риск умышленной подмены сессии пользователя(один из видов XSS атаки) ==== Исправление работы транзакций драйверов баз данных ==== Работа с транзакциями в MySql драйвере содержала серьезные ошибки, которые были исправлены. ==== JIP с использованием AJAX ==== Для облегчения fetch операций назначение доступных действий объекта было убрано из fetcher. Для вывода JIP на фронтальной части используется AJAX технология, т.е. происходит обращение к серверу для получения списка доступных действий объекта. ==== Новые WACT теги ==== * - в зависимости от mime-type медиа объекта рендерит его либо в , либо в теге * , - позволяют выполнять различный функционал в зависимости от текущей ветки сайта, удобны для мультиязычных проектов. * - то же самое, что и только для родительского объекта. * - собирает разрозненные js файлы в один файл * - выводит пары ключ=значение для текущего dataspace в шаблоне, удобен для отладки. ==== Низкоуровневый доступ к системе через CLI ==== Был добавлен эксперементальный CLI доступ к системе с помощью cli/limb.php скрипта(также существуют два удобных алиаса: limb.bat win32 batch и limb bash скрипты). Суть сводится к тому, чтобы предоставить разработчику возможность интерактивного доступа к системе через командную строку. Доступ к системе через CLI можно описать следующей обобщенной схемой: **$ limb /path/to/limb/project module_name service_name arg1 arg2 arg3 ... argN**, где * limb - один из алиасов для cli/limb.php * /path/to/limb/project - путь до директории с LIMB проектом * module_name - название модуля(модули хранятся в директории cli/modules в виде классов) * service_name - название сервиса модуля(сервис - обычный метод класса модуля) * arg1 arg2 arg3 ... argN - специфичные для сервиса аргументы(аргументы метода) Небольшой пример исследования доступных CLI модулей/сервисов и использования site_object модуля: $ limb . help === available modules === cache class controller db site_object $ limb . site_object help === module 'site_object' available services === add edit info mv rename rm set_class set_controller show $ limb . site_object info / array(32) { ["id"]=> string(3) "180" ["class_id"]=> string(2) "38" ["current_version"]=>string(1) "7" ["modified_date"]=>string(10) "1134135616" ["status"]=>string(2) "-1" ["created_date"]=>string(10) "1132056858" ["creator_id"]=>string(2) "25" ["title"]=>string(12) "Some title" ["identifier"]=>string(2) "ru" ["controller_id"]=>string(2) "53" ["object_id"]=>string(3) "180" ["version"]=>string(1) "7" ... }