函数名称:MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed()
函数描述:该函数是MongoDB PHP驱动程序的SDAMSubscriber类的方法之一。它在拓扑关闭事件发生时被调用。
适用版本:MongoDB PHP驱动程序2.4.0及更高版本。
用法:
public function topologyClosed(TopologyClosedEvent $event) : void
示例:
<?php
use MongoDB\Driver\Monitoring\SDAMSubscriber;
use MongoDB\Driver\Monitoring\TopologyClosedEvent;
class MySubscriber implements SDAMSubscriber
{
public function topologyClosed(TopologyClosedEvent $event) : void
{
$topologyId = $event->getTopologyId();
$serverList = $event->getServerList();
echo "Topology with ID $topologyId has been closed.\n";
echo "Affected servers:\n";
foreach ($serverList as $server) {
echo " - {$server->getHost()}:{$server->getPort()}\n";
}
}
}
// 创建一个SDAMSubscriber实例
$subscriber = new MySubscriber();
// 注册SDAMSubscriber实例
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$manager->subscribe($subscriber);
// 执行一些数据库操作...
// 注销SDAMSubscriber实例
$manager->unsubscribe($subscriber);
?>
说明:
- 在上述示例中,我们创建了一个名为MySubscriber的类,该类实现了SDAMSubscriber接口,并重写了topologyClosed方法。
- 在topologyClosed方法中,我们通过事件对象获取拓扑ID和受影响的服务器列表,并将它们打印出来。
- 我们创建了一个SDAMSubscriber实例$subscriber,并使用MongoDB\Driver\Manager类的subscribe方法将其注册到MongoDB连接管理器中。
- 在执行一些数据库操作后,我们使用unsubscribe方法将SDAMSubscriber实例注销掉,以停止接收拓扑关闭事件的通知。