确定ColdFusion函数是本机还是用户定义

jin*_*ula 2 coldfusion

我正在编写一个实用程序,它将解析CF代码并识别在编写测试时需要模拟的函数.为了使"应该被模拟"列表不包括本机CF函数,我需要能够识别它们.

我宁愿不维护要检查的本机函数列表.到目前为止,我提出的唯一解决方案是getMetaData仅使用和包含该方法找到的东西.这是非常少的代码,肯定会有效,但我想知道是否有一个更简单的方法,用于做出决定的开销更低.

例:

<cffunction name="foo">
  <cfset LTrim("  spaces!") />
  <cfset myFunction(42) />
</cffunction>
Run Code Online (Sandbox Code Playgroud)

在这里,我将解析并查看LTrimmyFunction想知道,对于每一个,如果它是同一组件中的本机CF或UDF.

Pet*_*tag 14

您可以使用getFunctionList()返回一个struct,其中每个键都是引擎支持的内置函数的名称.自CF4.5以来一直存在并且也在Railo/Lucee上工作.