Я использую технику, описанную в этом ответе , для управления библиотекой небольших служебных функций.(По сути, каждая функция загружается как «дополнение», используя cfinclude
.)
Однако мне нужно знать имена функций, которые имеет объект (после создания экземпляра).cfdump
на объекте показывает только функцию init
, которая написана непосредственно в CFC.
Некоторые дополнительные сведения:
Я создаю объект в области приложения в OnApplicationStart ().
<cfset application.udfs=createObject("component","extensions.udfs").init()>
Однако, чтобы избавить разработчиков от необходимости постоянно писать application.udfs.foo()
, я решил взять все функции и перенести их в область видимости переменных в OnRequestStart (), поэтомучто эти гипотетические разработчики могли просто написать foo()
.
<cfset foo=application.udfs.foo>
Очевидно, однако, что это должно быть динамичным и происходить для каждой из функций объекта, независимо от того, сколько их.Если я повторю эту строку для каждой функции, которую потерял все, что я получил, имея библиотеку, которая генерируется динамически.
Я подумал, что, возможно, я мог бы использовать цикл сбора, но это было недопустимо.Я вполне уверен, что есть способ получить список методов в объекте, но я пока не смог его найти.
Есть какие-нибудь подсказки?
Кстати, мой запасной вариантбудет скопировать объект application.udfs в локальный объект с красивым коротким именем (например, "u"), чтобы разработчики могли просто набрать u.foo()
, поэтому нет необходимости предполагать, что если то, что я хочу сделать, может 'это будет сделано.