/** * @throws InvalidEventSubscriberCollection */ private function guardEventSubscribersAreValid() { $eventSubscribers = $this->config->getEventSubscribers(); $invalidSubscribers = array_filter($eventSubscribers, function ($subscriber) { return !is_object($subscriber) || !$subscriber instanceof SubscribesToEvents; }); if (!empty($invalidSubscribers)) { throw (new InvalidEventSubscriberCollection())->withInvalidKeys(array_keys($invalidSubscribers)); } }
public function getFinalWriteResponder() : RespondsFinallyToWriteRequest { if ($this->finalWriteResponder === null) { $this->finalWriteResponder = $this->config->getFinalWriteResponder(); } return $this->finalWriteResponder; }
public function handleRequest() { $requestInfo = $this->config->getRequestInfo(); if (in_array($requestInfo->getMethod(), HttpMethod::WRITE_METHODS)) { $requestHandler = new WriteRequestHandler($this->config, $this->eventPublisher); $requestHandler->handleRequest(); } elseif (in_array($requestInfo->getMethod(), HttpMethod::READ_METHODS)) { $requestHandler = new ReadRequestHandler($this->config, $this->eventPublisher); $requestHandler->handleRequest(); } elseif ($requestInfo->getMethod() == HttpMethod::OPTIONS) { $requestHandler = new OptionsRequestHandler($this->config, $this->eventPublisher); $requestHandler->handleRequest(); } else { (new MethodNotImplemented($requestInfo->getMethod()))->respond(); } }