有没有办法为模块创建一个可以预期实现任何主机应用程序的接口?
我们有几个应用程序有很多常见的代码,我们想要重构为模块,但有时模块可能需要调用runEvent
或{{1由于独特的行为和实现而存在于宿主应用程序中的处理程序方法。
我可以在模块中指定像#34;主机应用程序必须实现以下处理程序的合同:' admin.foo',' admin.bar',...& #34;
我猜测有一个模块加载拦截我可以手动执行此操作,但我想知道是否有一个约定,所以我可以将列表放在某处而不是复制粘贴样板代码进入每个模块。
答案 0 :(得分:0)
您可以在ModuleConfig.cfc
:this.dependencies = [ "myOtherModule" ]
中指定依赖关系。这些依赖项将在模块之前加载。此时,无法“连接”模块以符合处理程序集合。
通常情况下,通过传递到其他模块,这很容易通过模块配置中的自定义路由来处理,而不是通过新的实现来处理:
addRoute(
pattern="/this-module/foo",
moduleRouting="that-module"
)
或
addRoute(
pattern="/this-module/foo",
module="that-module",
handler="oldFoo"
action="bar"
)