Model view controller zend框架中两个模块之间的接口

Model view controller zend框架中两个模块之间的接口,model-view-controller,module,zend-framework2,modularization,modular-design,Model View Controller,Module,Zend Framework2,Modularization,Modular Design,有没有办法在两个模块之间创建接口,以便它们可以相互交互? 我正在制作zend framework2 非常感谢。Zend Framework 2提供了一个服务管理器。它允许您将特定服务注册到管理器中,其他对象可以在其中使用这些服务。举个例子,您有一个Blog模块和一个Twitter模块。当您发布一篇新的博客文章时,您可以使用Twitter模块发送一条推文 假设您有一个具有以下接口的Twitter服务类: namespace TwitterModule\Service; 接口TwitterServi

有没有办法在两个模块之间创建接口,以便它们可以相互交互? 我正在制作zend framework2


非常感谢。

Zend Framework 2提供了一个服务管理器。它允许您将特定服务注册到管理器中,其他对象可以在其中使用这些服务。举个例子,您有一个Blog模块和一个Twitter模块。当您发布一篇新的博客文章时,您可以使用Twitter模块发送一条推文

假设您有一个具有以下接口的Twitter服务类:

namespace TwitterModule\Service;
接口TwitterServiceInterface
{
公共功能推文($text);
}
类TwitterService实现TwitterServiceInterface
{
//实施
}
现在,您可以在Twitter模块的
module.config.php
中注册此服务:

“服务管理器”=>阵列(
“可调用”=>数组(
'TwitterService'=>'TwitterModule\Service\TwitterService'
),
),
通过这种方式,任何模块都可以向服务管理器“询问”TwitterService,服务管理器将返回
TwitterModule\service\TwitterService
的实例

因此,在您的博客模块中:

类博客服务
{
公共函数存储(数组$data)
{
//创建$post,将其存储到DB中
//$sm是Zend\ServiceManager\ServiceManager的实例
$twitter=$sm->get('TwitterService');
$tweet=sprintf('Blogged:%s',$post->getTitle());
$twitter->tweet($tweet);
}
}

该示例可能不是最好的(您不希望这样的耦合,您更希望通过事件解决它,您应该使用适当的依赖项注入),但它只是展示了如何在模块之间共享实例。

您可以给出一个示例吗?例如,在mvcExpress框架中,您可以发送sendMessage(“messageType”)之类的消息,新模块通信参数(“测试参数”);这在zend中是可能的吗?那是怎么回事?您可以对ZF2中其他模块中的类调用方法,因此您应该能够创建类来实现您所追求的目标。