2017-06-20 65 views
0

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

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

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

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

回答

0

您可以在ModuleConfig.cfcthis.dependencies = [ "myOtherModule" ]中指定相关性。这些依赖关系将在模块之前加载。目前,没有办法“接口”模块以符合一系列处理程序。

典型地,尽管,通过与其他模块这是很容易通过自定义路由模块配置中进行处理,而不是由一个新的实现:

addRoute(
    pattern="/this-module/foo", 
    moduleRouting="that-module" 
) 

addRoute(
    pattern="/this-module/foo", 
    module="that-module", 
    handler="oldFoo" 
    action="bar" 
) 

More on routing