Coldfusion 无法从cfinvoke语句中找到组件
由于有人离开了我负责维护的公司,我收到了一些ColdFusion代码。问题是我最后一次看一些ColdFusion代码是在大约10年前,所以我完全迷路了,我从零开始 我的问题是我试图定位组件或代码,以及下面显示的代码中调用的任何东西Coldfusion 无法从cfinvoke语句中找到组件,coldfusion,cfml,cfinvoke,Coldfusion,Cfml,Cfinvoke,由于有人离开了我负责维护的公司,我收到了一些ColdFusion代码。问题是我最后一次看一些ColdFusion代码是在大约10年前,所以我完全迷路了,我从零开始 我的问题是我试图定位组件或代码,以及下面显示的代码中调用的任何东西 <cfinvoke component="_admin_tools_kms" method="listKMSUsers" returnVariable="getKMSUsers"> <cfinvokeargument name="argFul
<cfinvoke component="_admin_tools_kms" method="listKMSUsers" returnVariable="getKMSUsers">
<cfinvokeargument name="argFullAccount" value="1" />
</cfinvoke>
我知道这会返回系统的用户列表,但我找不到进行该调用的确切代码。组件名“\u admin\u tools\u kms”应该是某个地方的cfm文件名,还是仅仅是以某种方式创建的引用名?让我们来分析一下:
<cfinvoke
component="someComponent"
method="someFunction"
returnVariable="someVariable">
<cfinvokeargument name="someArgument" value="foo" />
</cfinvoke>
属性component
是扩展名为.cfc
的文件名或包含该组件实例的变量。如果它是一个变量,它将被引用为#someComponent#
如果其中只有一个简单的值,那么很可能在同一文件夹中有一个名为someComponent.cfc
的文件
如果其中有一个点分隔的值,比如cfc.services.someComponent
- 在web根目录中查找名为
的文件夹,该文件夹包含另一个文件夹/cfc/
,您可以在其中找到文件/services/
someComponent.cfc
- 如果看不到该文件夹,请在根
文件中查找创建别名Application.cfc
的ColdFusion映射,并将其映射到所需的文件夹李>cfc
- 如果没有,那么检查您的web服务器上的文件夹别名或映射,看看一些精神病患者到底做了什么来隐藏代码存在的地方
由于一个CFC可以扩展另一个CFC,因此可能存在一个
parentComponent.CFC
,它扩展了someComponent
,实际上包含了所讨论的方法。更糟糕的是,文件someComponent.cfc
可能包含包含该方法的其他文件。唯一的缺点是,如果函数被命名为像create
这样的通用函数 由于该值是一个简单的字符串,因此它是组件文件的名称。实际文件名将以“.cfc”扩展名结尾。:\u admin\u tools\u kms.cfc。它很可能与调用文件位于同一目录中。我看到Ageax比我快了一分钟。您应该在调用cfm的同一文件夹中找到\u admin\u tools\u kms.cfc
。或者,我只搜索方法名listKMSUsers
。组件
属性中引用的CFC文件可能扩展或包含其他文件。应该有人将此作为答案写下来。有时很难找到什么叫什么。