Это второй альфа релиз новой ветки LIMB 2.4, в котором исправлено большое число ошибок и добавлен новый функционал.
Стоит выделить следующие наиболее важные изменения:
Мы старались найти и исправить все проблемматичные места в коде, которые приводили к warning в PHP-4.4.x(по крайней мере тесты выполняются без ошибок). Однако, в виду частичного покрытиями тестами, мы пока не даем полной гарантии того, что код полностью совместим с новыми версиями PHP4.
Запутанные константы CONTENT_LOCALE_ID и MANAGEMENT_LOCALE_ID ушли в прошлое, на смену им пришла единственная константа LOCALE_ID. Именно она определяет, какие установки locale действительны в текущий момент обработки запроса. Для большей гибкости LOCALE_ID, возможно, в будущем будет глобальной переменной.
Данный аттрибут себя морально изжил в виду перехода на UTF-8. К тому же, правильнее было бы его называть translation_id, однако пока функционала для множественных переводов объектов у нас нет, от него стоит избавиться.
В целях повышения безопасности сессия пользователя жестко привязана к его ip адресу, что уменьшает риск умышленной подмены сессии пользователя(один из видов XSS атаки)
Работа с транзакциями в MySql драйвере содержала серьезные ошибки, которые были исправлены.
Для облегчения fetch операций назначение доступных действий объекта было убрано из fetcher. Для вывода JIP на фронтальной части используется AJAX технология, т.е. происходит обращение к серверу для получения списка доступных действий объекта.
Был добавлен эксперементальный CLI доступ к системе с помощью cli/limb.php скрипта(также существуют два удобных алиаса: limb.bat win32 batch и limb bash скрипты). Суть сводится к тому, чтобы предоставить разработчику возможность интерактивного доступа к системе через командную строку.
Доступ к системе через CLI можно описать следующей обобщенной схемой:
$ limb /path/to/limb/project module_name 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"
...
}