在 Lucee 或 Railo 上,将 CFML 文件中的接口功能包含在 CFC 中。

5
我正在尝试为一个cfc添加一个接口,其中包含一些在cfml文件中的函数,但它会抛出一个错误信息,"组件[...]没有实现接口中的函数[..]",它抱怨的函数在包含的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>
1个回答

0

我发现的一个可能的解决方法是用一个空的cfc替换包含cfml文件的原始cfc,该空cfc实现了接口并扩展了重命名为其他名称的原始cfc。通过替换原始cfc,您可以保持相同的类型同时添加接口。因此,带有问题示例的更新部分将如下所示:

comp-to-extend.cfc

component implements="int" {
    include "inc.cfm";
}

comp.cfc

component extends="comp-to-extend" implements="int" {}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接