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 : 5328

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
 
?>
Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages