Je me demande comment je peux améliorer mon code Zend qui appelle une procédure stockée. En ce moment j'utilise une base de données MySQL, et la fonction d'action dans mon contrôleur ci-dessous fonctionne, mais il semble méchant.Améliorer mon code d'appel Zend procédure stockée
public function callSPAction()
{
$param = $this->_request->getParam('param', 0);
$bootstrap = $this->getInvokeArg('bootstrap');
$config = $bootstrap->getOptions();
$mysqli = new mysqli(
$config['resources']['db']['params']['host'],
$config['resources']['db']['params']['root']['username'],
$config['resources']['db']['params']['root']['password'],
$config['resources']['db']['params']['dbname']);
$rs = $mysqli->query(sprintf('CALL mystoredprocedure(%d)',$param));
if(mysqli_error($mysqli))
{
throw new exception(mysqli_error($mysqli), mysqli_errno($mysqli));
}
$this->_helper->redirector('index', 'index');
}
Je préfère utiliser les classes Zend_Db pour appeler la procédure stockée, mais je ne sais pas comment cela peut être fait?
Depuis que j'appelle un certain nombre de procédures stockées, je pense qu'il serait préférable de créer une classe d'aide qui enveloppe la logique pour se connecter à la base de données. Cela exposerait des méthodes qui encapsuleraient la procédure stockée sous-jacente. Mon code de contrôleur pourrait alors simplement appeler
StoredProcedureHelper::callMyStoredProdecure($this->_request->getParam('param', 0);
Est-ce possible ou même recommandé?