Répertoire de codes source
Accès rapide aux modèles depuis un controlleur | |
---|---|
déposé par golivier le 11/03/2008 nombre de visites : 5411 |
Cette classe permet de traiter des propriétés virtuelles ayant la forme : mdlXXXX ou XXXX est un modèle de données existant.
|
<?php /* ------------------------------------------------------------------------------------------ Controleur de base avec initialisation automatique des modèles Auteur : Olivier GUILBAUD http://www.trevinfo.fr ------------------------------------------------------------------------------------------ */ require_once('Zend/Loader.php'); /** Cette classe permet d'utiliser des propriétés dynamiques liées aux modèles accessibles par le projet. Exemple : pour accéder au model class Contrats extends Zend_Db_Table {} dans un controleur, il suffit de faire $res = $this->mdlContrats->fetchAll(); */ class TI_Controller_Action extends Zend_Controller_Action { private $_mdl = array(); /** * Simule l'existance d'un proprété * * mdlXXXX : Création d'un objet correspondant au modèle XXXX */ protected function __get($var) { if (preg_match('/^mdl([a-z,A-Z]+)/i', $var, $res)) { $name = $res[1]; if (!isset($this->_mdl[$name])) { Zend_Loader::loadClass($name); if (class_exists($name)) $this->_mdl[$name] = new $name(); else return false; } return $this->_mdl[$name]; } } } //class TI_Controller_Action ?> |
|