예제 #1
0
 /**
  * Creates a request based on a query instance
  *
  * @param Solarium_Query $query
  * @return Solarium_Client_Request
  */
 public function createRequest($query)
 {
     $pluginResult = $this->_callPlugins('preCreateRequest', array($query), true);
     if ($pluginResult !== null) {
         return $pluginResult;
     }
     $queryType = $query->getType();
     if (!isset($this->_queryTypes[$queryType])) {
         throw new Solarium_Exception('No requestbuilder registered for querytype: ' . $queryType);
     }
     $requestBuilder = $this->_queryTypes[$queryType]['requestbuilder'];
     if (is_string($requestBuilder)) {
         $requestBuilder = new $requestBuilder();
     }
     $request = $requestBuilder->build($query);
     $this->_callPlugins('postCreateRequest', array($query, $request));
     return $request;
 }
예제 #2
0
 /**
  * Event hook to capture querytype
  *
  * @param Solarium_Query $query
  * @return void
  */
 public function preCreateRequest($query)
 {
     $this->_queryType = $query->getType();
 }