* @license http://github.com/basdenooijer/solarium/raw/master/COPYING * @link http://www.solarium-project.org/ * * @package Solarium */ /** * Base class for plugins * * @package Solarium * @subpackage Plugin */ abstract class Solarium_Plugin_Abstract extends Solarium_Configurable { /** * Client instance * * @var Solarium_Client */ protected $_client; /** * Initialize * * This method is called when the plugin is registered to a client instance * * @param Solarium_Client $client * @param array $options */ public function init($client, $options) { $this->_client = $client; parent::__construct($options); $this->_initPlugin(); } /** * Plugin init function * * This is an extension point for plugin implementations. * Will be called as soon as $this->_client and options have been set. * * @return void */ protected function _initPlugin() { } /** * preCreateRequest hook * * @param Solarium_Query $query * @return void|Solarium_Client_Request */ public function preCreateRequest($query) { } /** * postCreateRequest hook * * @param Solarium_Query $query * @param Solarium_Client_Request $request * @return void */ public function postCreateRequest($query, $request) { } /** * preExecuteRequest hook * * @param Solarium_Client_Request $request * @return void|Solarium_Client_Response */ public function preExecuteRequest($request) { } /** * postExecuteRequest hook * * @param Solarium_Client_Request $request * @param Solarium_Client_Response $response * @return void */ public function postExecuteRequest($request, $response) { } /** * preCreateResult hook * * @param Solarium_Query $query * @param Solarium_Client_Response $response * @return void|Solarium_Result */ public function preCreateResult($query, $response) { } /** * postCreateResult hook * * @param Solarium_Query $query * @param Solarium_Client_Response $response * @param Solarium_Result $result * @return void */ public function postCreateResult($query, $response, $result) { } /** * preExecute hook * * @param Solarium_Query $query * @return void|Solarium_Result */ public function preExecute($query) { } /** * postExecute hook * * @param Solarium_Query $query * @param Solarium_Result $result * @return void */ public function postExecute($query, $result) { } /** * preCreateQuery hook * * @param string $type * @param mixed $options * @return void|Solarium_Query */ public function preCreateQuery($type, $options) { } /** * postCreateQuery hook * * @param string $type * @param mixed $options * @param Solarium_Query * @return void */ public function postCreateQuery($type, $options, $query) { } }