/** * @param Listener $listener * @param int $priority * * @return array */ private function createWorkersFromStandardListener(Listener $listener, $priority = null) { $workers = array(); $reflectedListener = new \ReflectionClass($listenerClass = get_class($listener)); foreach ($reflectedListener->getMethods() as $method) { if (!$method->isPublic() || $method->getNumberOfParameters() > 1 || !($param = current($method->getParameters()))) { continue; } if (($eventClassName = $this->getEventClassNameFromParam($param)) === null) { continue; } if ($priority === null) { $workerPriority = $this->priorityResolver->getPriorityFromDocComment($method->getDocComment()); if ($workerPriority === null) { $workerPriority = Priority::NORMAL; } } else { $workerPriority = $priority; } $workers[] = new Worker($this->generateWorkerId(), $listener, $method->name, $eventClassName, $workerPriority); } return $workers; }
public function testReturnsNullOnInvalidEmptyDocComment() { $resolver = new PriorityResolver(); $value = $resolver->getPriorityFromDocComment('@priority', null); $this->assertNull($value); }