single_segment_loader = $single_segment_loader; $this->subscribers_ids_loader = $subscribers_ids_loader; } /** * @param Segment $segment * @param int[] $subscribers_to_process_ids * * @return Subscriber[] */ function findSubscribersInSegment(Segment $segment, array $subscribers_to_process_ids) { if ($segment->type !== DynamicSegment::TYPE_DYNAMIC) return []; $dynamic_segment = $this->single_segment_loader->load($segment->id); return $this->subscribers_ids_loader->load($dynamic_segment, $subscribers_to_process_ids); } /** * @param Segment $segment * * @return array */ function getSubscriberIdsInSegment(Segment $segment) { if ($segment->type !== DynamicSegment::TYPE_DYNAMIC) return []; $dynamic_segment = $this->single_segment_loader->load($segment->id); $result = $this->subscribers_ids_loader->load($dynamic_segment); return $this->createResultArray($result); } private function createResultArray($subscribers) { $result = []; foreach ($subscribers as $subscriber) { $result[] = $subscriber->asArray(); } return $result; } }