Sni*_*olf 5 coldfusion cfc railo cfml lucee
我正在尝试向cfc添加一个接口,其中包含cfml文件中的一些函数,但是它会抛出错误消息"component [...]没有实现接口的函数[..]"它的功能抱怨是在包含的cfml文件中实现的,我已经在railo 4和lucee 5中测试了这个并且在两者中都得到了相同的错误但它在coldfusion 11中有效吗?是否有人知道在lucee中是否有解决方法或修复此问题或railo?
下面是重现错误的示例代码.
interface {
public numeric function func() output="false";
}
Run Code Online (Sandbox Code Playgroud)
component implements="int" {
include "inc.cfm";
}
Run Code Online (Sandbox Code Playgroud)
<cfscript>
public numeric function func() output="false"{
return 2;
}
</cfscript>
Run Code Online (Sandbox Code Playgroud)
<cfscript>
cfc = createObject("component", "comp");
writedump(cfc.func());
</cfscript>
Run Code Online (Sandbox Code Playgroud)
我发现的一种可能的解决方法是将包含 cfml 文件的原始 cfc 替换为实现接口的空 cfc,但也将原始 cfc 重命名为其他内容,通过替换原始 cfc,您可以在保留相同类型的同时添加界面。因此,带有问题的示例的更新部分将如下所示
component implements="int" {
include "inc.cfm";
}
Run Code Online (Sandbox Code Playgroud)
component extends="comp-to-extend" implements="int" {}
Run Code Online (Sandbox Code Playgroud)