Для контекста:
Я настраиваю PubSub Emitter для снегоочистителя. (Для других читателей PubSub - это простая очередь на облачных платформах Google, которая принимает сообщения, являющиеся массивом входных данных).
['data' => 'Name', 'attributes' => 'key pair values of whatever data you are sending']
Вышеприведенное не имеет значения, за исключением того, что для достижения этой цели я должен создать собственный класс Emitter, поскольку в Google Cloud PubSub есть несколько соединителей, отличных от стереотипных http-запросов / сокетов / других, которые предоставляет снегоочиститель.
Актуальная проблема:
Я хочу установить конкретную схему для каждого отправляемого события. Как вы связываете схему с каждой полезной нагрузкой?
PHP Tracker SyncEmitter (самый стандартный снегоочиститель, предоставляемый Emitter) не допускает никаких пользовательских настроек для схемы (как показано ниже)
private function getPostRequest($buffer) {
$data = array("schema" => self::POST_REQ_SCEHMA, "data" => $buffer);
return $data;
}
Он жестко запрограммирован в каждом отслеживаемом событии.
Итак, я исследовал. И почитайте о снегоочистителях немного больше. Я все еще сбит с толку, и я знаю, что могу расширить класс Payload и заставить свои собственные схемы использовать в качестве переменной, но почему это уже не так? Я спрашиваю, потому что я предполагаю, что программист с открытым исходным кодом сделал это правильно, и я не понимаю это правильно.