Как поместить библиотеку UDF в область APPLICATION? - PullRequest
1 голос
/ 30 ноября 2011

Я использую ColdFusion 9.0.1.

Прямо сейчас мы включаем нашу библиотеку UDF в метод onRequest () нашего application.cfc. Вот как мы это включили:

<cfscript>
    // INCLUDE LIBRARY
    include "udf/udf_library.cfm";
</cfscript>

Мне интересно, есть ли способ поместить всю библиотеку в область ПРИЛОЖЕНИЯ, чтобы она создавалась только один раз. Будем ли мы делать это так же, как мы помещаем наши orders.cfc в область APPLICATION, например:

APPLICATION.AppInfo.objOrders = createObject("component", "globaladmin.orders");

Должна ли библиотека UDF быть преобразована в CFC, чтобы это произошло?

Как мы будем ссылаться на функцию в CFC?

В настоящее время мы вызываем функции UDF без суеты, например:

<cfscript>
   createButton("Canada Postal Codes", "ShowSection", "ShippingCanadaPostalCodes");
   wrapCell(Buttons);
   wrapRow(Cells, "TableSubHead"));
</cfscript>

Было бы ужасно добавить «APPLICTION.AppInfo» перед каждой функцией.

Итак, будет ли какое-либо преимущество в том, чтобы переместить библиотеку UDF в область ПРИЛОЖЕНИЯ или загрузить ее только один раз в другое место?

1 Ответ

1 голос
/ 30 ноября 2011

Я думаю, что обзор ваших UDFs - хорошая идея.Поскольку вы просто используете их как часть области REQUEST, есть место для конфликтов имен, если методы с такими же именами объявлены на страницах .cfm в других частях вашего приложения.

Если вы добавите ихи объект в области APPLICATION, например, в onApplicationSart (), тогда вы должны будете знать о проблемах безопасности потоков.Предположительно, ваши пользовательские функции достаточно автономны, поэтому ваш объект в области APPLICATION не будет содержать никакого внутреннего состояния как такового, поэтому вы должны быть достаточно безопасны в этом отношении.к CFC и создайте его в функции onApplicationStart () вашего Application.cfc, назначенной для области APPLICATION, как описано выше.

Если библиотека UDF будет преобразована в CFC, чтобы это произошло?

ДА

Как мы будем ссылаться на функцию в ХФУ?

APPLICATION.AppInfo.yourObj.createButton("Canada Postal Codes", "ShowSection", "ShippingCanadaPostalCodes")
...