コード例 #1
0
ファイル: Client.php プロジェクト: jollysean/solr-codeigniter
 /**
  * Creates a request based on a query instance
  *
  * @throws UnexpectedValueException
  * @param  QueryInterface           $query
  * @return Request
  */
 public function createRequest(QueryInterface $query)
 {
     $event = new PreCreateRequestEvent($query);
     $this->eventDispatcher->dispatch(Events::PRE_CREATE_REQUEST, $event);
     if ($event->getRequest() !== null) {
         return $event->getRequest();
     }
     $requestBuilder = $query->getRequestBuilder();
     if (!$requestBuilder || !$requestBuilder instanceof RequestBuilderInterface) {
         throw new UnexpectedValueException('No requestbuilder returned by querytype: ' . $query->getType());
     }
     $request = $requestBuilder->build($query);
     $this->eventDispatcher->dispatch(Events::POST_CREATE_REQUEST, new PostCreateRequestEvent($query, $request));
     return $request;
 }