0

有没有办法为任何主机应用程序都可以实现的模块创建接口?

我们有几个应用程序有很多常见的代码,我们希望将它们重构为模块,但有时模块可能需要调用runEventsetNextEvent由于独特的行为和存在于宿主应用程序中的处理程序方法执行。

我可以在模块中指定一个合同,如“主机应用程序必须实现以下处理程序:'admin.foo'、'admin.bar'、...”吗?

我猜有一个模块加载拦截,我可以手动执行此操作,但我想知道是否有约定,所以我可以将列表放在某个地方,而不是将样板代码复制粘贴到每个模块中。

4

1 回答 1

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"
)

更多关于路由

于 2017-11-14T19:12:15.837 回答