示例#1
0
 /**
  * @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));
     }
 }
示例#2
0
 public function getFinalWriteResponder() : RespondsFinallyToWriteRequest
 {
     if ($this->finalWriteResponder === null) {
         $this->finalWriteResponder = $this->config->getFinalWriteResponder();
     }
     return $this->finalWriteResponder;
 }
示例#3
0
 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();
     }
 }