从 lucee 或 railo 上的 cfml 文件在 cfc 中包含接口函数
Including interface functions in cfc from cfml files on lucee or railo
我正在尝试向 cfc 添加一个接口,该接口在 cfml 文件中包含一些函数,但是它会抛出错误消息 "component [...] does not implement the function [..] of the interface" 它所抱怨的函数已在包含的 cfml 文件中实现,我已经在 railo 4 和 lucee 5 中测试过这个并且在两者中都得到了相同的错误但是它在 coldfusion 11 中工作有谁知道在 lucee 或 railo 中是否有解决方法或修复?
下面是重现错误的示例代码。
int.cfc
interface {
public numeric function func() output="false";
}
comp.cfc
component implements="int" {
include "inc.cfm";
}
inc.cfm
<cfscript>
public numeric function func() output="false"{
return 2;
}
</cfscript>
index.cfm
<cfscript>
cfc = createObject("component", "comp");
writedump(cfc.func());
</cfscript>
我发现的一种可能的解决方法是将包含 cfml 文件的原始 cfc 替换为实现该接口的空 cfc,但还将重命名为其他内容的原始 cfc 进行扩展,通过替换原始 cfc,您可以保留相同的类型,同时还添加了接口。因此,带有问题的示例的更新部分如下所示
comp-to-extend.cfc
component implements="int" {
include "inc.cfm";
}
comp.cfc
component extends="comp-to-extend" implements="int" {}
我正在尝试向 cfc 添加一个接口,该接口在 cfml 文件中包含一些函数,但是它会抛出错误消息 "component [...] does not implement the function [..] of the interface" 它所抱怨的函数已在包含的 cfml 文件中实现,我已经在 railo 4 和 lucee 5 中测试过这个并且在两者中都得到了相同的错误但是它在 coldfusion 11 中工作有谁知道在 lucee 或 railo 中是否有解决方法或修复?
下面是重现错误的示例代码。
int.cfc
interface {
public numeric function func() output="false";
}
comp.cfc
component implements="int" {
include "inc.cfm";
}
inc.cfm
<cfscript>
public numeric function func() output="false"{
return 2;
}
</cfscript>
index.cfm
<cfscript>
cfc = createObject("component", "comp");
writedump(cfc.func());
</cfscript>
我发现的一种可能的解决方法是将包含 cfml 文件的原始 cfc 替换为实现该接口的空 cfc,但还将重命名为其他内容的原始 cfc 进行扩展,通过替换原始 cfc,您可以保留相同的类型,同时还添加了接口。因此,带有问题的示例的更新部分如下所示
comp-to-extend.cfc
component implements="int" {
include "inc.cfm";
}
comp.cfc
component extends="comp-to-extend" implements="int" {}