在lucee或railo上的cfml文件中包含cfc中的接口函数

Sni*_*olf 5 coldfusion cfc railo cfml lucee

我正在尝试向cfc添加一个接口,其中包含cfml文件中的一些函数,但是它会抛出错误消息"component [...]没有实现接口的函数[..]"它的功能抱怨是在包含的cfml文件中实现的,我已经在railo 4和lucee 5中测试了这个并且在两者中都得到了相同的错误但它在coldfusion 11中有效吗?是否有人知道在lucee中是否有解决方法或修复此问题或railo?

下面是重现错误的示例代码.

int.cfc

interface {
    public numeric function func() output="false";
}
Run Code Online (Sandbox Code Playgroud)

comp.cfc

component implements="int" {
    include "inc.cfm";
}
Run Code Online (Sandbox Code Playgroud)

inc.cfm

<cfscript>
public numeric function func() output="false"{
    return 2;
}
</cfscript>
Run Code Online (Sandbox Code Playgroud)

index.cfm

<cfscript>
    cfc = createObject("component", "comp");
    writedump(cfc.func());
</cfscript>
Run Code Online (Sandbox Code Playgroud)

Sni*_*olf 0

我发现的一种可能的解决方法是将包含 cfml 文件的原始 cfc 替换为实现接口的空 cfc,但也将原始 cfc 重命名为其他内容,通过替换原始 cfc,您可以在保留相同类型的同时添加界面。因此,带有问题的示例的更新部分将如下所示

压缩扩展.cfc

component implements="int" {
    include "inc.cfm";
}
Run Code Online (Sandbox Code Playgroud)

比较版cfc

component extends="comp-to-extend" implements="int" {}
Run Code Online (Sandbox Code Playgroud)