从 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" {}