/** * 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; }
/** * Event hook to capture querytype * * @param Solarium_Query $query * @return void */ public function preCreateRequest($query) { $this->_queryType = $query->getType(); }