Перегляд за місяцем: September 2007

 

Fusebox 5

Версия 5.1 этого фреймворка вышла 26 июня, скачать ядро, плагины и примеры можно тут. Там же можно скачать и словари, но о них чуть дальше. Всё что написано касается версии для ColdFusion, но большинство подходит и для PHP-версии. Для упрощения понимания терминов, перевод названий не везде дословный.

Некоторые нововведения:

- добавлены новые режимы работы (кроме уже существующих development и production), - добавлены словари (lexicons), - теперь можно использовать одни и те же файлы ядра для нескольких приложений. Собственно можно использовать практически все файлы, от сёркитов до словарей (global sharing), - добавлены безопасные URL-ы - добавлен режим трассировки

Коротко о каждом

Режимы работы:

1. developement-full-load - аналогичен режиму developement для Fusebox 4, который теперь использовать не рекомендуется (режим, не Fusebox =)). Заставляет Fusebox парсить все файлы, а если были изменены xml файлы - в добавок перезагружает сам Fusebox 2. development-circuit-load - перегружает все circuit файлы, которые участвуют в запросе и парсит все файлы, необходимые для выполнения текущего запроса 3. production - тут изменений нет, используются уже распарсеные файлы, все работает правильно и быстро =)

также можно выбрать режим, используя переменные (само собой они логические): fusebox.load - перегружает xml файлы fusebox.parse - парсит выбранный фьюзэкшн fusebox.execute - выполняет его fusebox.loadclean - то же что и load, но удаляет все файлы, которые распарсены до этого fusebox.parseall - парсит все public фьюзэкшны

Словари (lexicons)

Позволяют вводить использовать в circuit файлах новые функции и управлюящие структуры. Словари состоят из слов (verbs). Объявляются и используются словари как пространства имен XML. Подключить словарь можно так:
в fusebox.xml.cfm
<fusebox xmlns:myLex="/lexicon/mylex"/>
или так
в circuit.xml.cfm
<circuit xmlns:myLex="/lexicon/mylex"/>

и затем использовать в circuit.xml.php примерно так:
<myLex:dump label="Attributes Scope" var="Attributes" />
это вызовет слово dump из лексикона myLex с параметрами label и var

За руководством по написанию словарей лучше обратиться сюда

 

Shared core files

Для использования общих файлов ядра, в каждом отдельном приложении нужно создать файл index.cfm такого вида:
<cfapplication name="sampleapp" sessionmanagement="Yes" sessiontimeout="#CreateTimeSpan(0, 4,0,0)#" >
<cfset FUSEBOX_APPLICATION_KEY = "myApp">
<cfset FUSEBOX_APPLICATION_PATH="../scripts/FBCore" >
<cfinclude template="#fusebox_Application_Path#/fusebox5/fusebox5.cfm" >
с разными FUSEBOX_APPLICATION_KEY и соответствующими путями к ядру и приложению

"Безопасные" URL'ы

Используются за счет еще одного нововведения - тега . Теперь xfa будет выглядеть так:
<xfa name="edit" value="app.edittask">
<parameter name="id" value="#attributes.id#"/>
</xfa>
вместо
<xfa name="edit" value="app.edittask&amp;id=#attributes.id#"/>

Такой механизм позволяет модифицировать URL, изменяя параметры self, queryStringStart, queryStringSeparator, queryStringEqual и myself. Например если задать их все как '/', то такой получим URL: app.edittask/id/#attributes.id# и myself - index.cfm/fuseaction/

"Безопасность" тут заключается в более удобном понимании таких URL'ов человеком и поисковыми системами.

Режим трассировки

Установив
<parameter name="debug" value="true" />
можно отслеживать время выполнения отрезков приложения, расставляя метки трассировки при помощи myFusebox.trace(type,message) предопределенные типы - fusebox, runtime, compiler. Можно создавать свои собственные типы.

Вот вкратце и все о нововведениях. На самом деле их значительно больше, и они заслуживают более подробного описания, но, что есть - то есть =)

Автор: Владимир Каленюк | Опубліковано: 06.09.2007 о 06:46 | Категорії: Frameworks - Fusebox -