2021-04-11 17:18:54 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace Kafka;
|
|
|
|
|
|
|
|
|
|
|
2021-08-11 01:04:57 +08:00
|
|
|
use Kiri\Abstracts\BaseObject;
|
2021-04-11 17:18:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2021-08-04 14:38:20 +08:00
|
|
|
* Class KafkaProvider
|
2021-04-11 17:18:54 +08:00
|
|
|
* @package Kafka
|
|
|
|
|
*/
|
2021-08-04 14:38:20 +08:00
|
|
|
class KafkaProvider extends BaseObject
|
2021-04-11 17:18:54 +08:00
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private array $_topics = [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param $topic
|
|
|
|
|
* @param $handler
|
|
|
|
|
*/
|
|
|
|
|
public function addConsumer($topic, $handler)
|
|
|
|
|
{
|
|
|
|
|
if (isset($this->_topics[$topic])) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2021-08-05 15:55:27 +08:00
|
|
|
$this->_topics[$topic] = $handler::class;
|
2021-04-11 17:18:54 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-08-04 14:33:39 +08:00
|
|
|
/**
|
|
|
|
|
* @param string $topic
|
|
|
|
|
* @return mixed
|
|
|
|
|
*/
|
|
|
|
|
public function getConsumer(string $topic): mixed
|
2021-04-11 19:02:42 +08:00
|
|
|
{
|
|
|
|
|
return $this->_topics[$topic] ?? null;
|
|
|
|
|
}
|
|
|
|
|
|
2021-04-11 17:18:54 +08:00
|
|
|
}
|