大家好我在Phalcon中使用以下结构进行多模块项目
[modules]
[module1]
[controllers]
[models]
[views]
[module2]
[controllers]
[models]
[views]
[module-n]
[controllers]
[models]
[views]
我在bootstrap index.php文件中只注册了模块1和模块2。像这样:
$this->registerModules(array
(
'Module1' => array(
'className' => 'Modules\Module1\Module',
'path' => '../modules/module1/Module.php'
),
'Module2' => array(
'className' => 'Modules\Module2\Module',
'path' => '../modules/module2/Module.php'
)
));
现在,我的默认模块是模块1。我如何使用模块n的控制器(此模块尚未注册)。是否有注册模块的动态方式?
答案 0 :(得分:1)
基本上你应该避免在另一个模块中使用一个模块控制器。这不是应用程序行为的正确方法;)这更多是关于一般良好的编程和设计模式,而不是phalcon本身。例如,您可以使用http://en.wikipedia.org/wiki/Service-oriented_architecture
有可能动态注册服务并在模块之间共享它们,如果您正在寻找Phalcon中的实现,您可以查看Vegas CMF:http://vegas-cmf.github.io/1.0/guide/di/service-manager.html