Ajout d’un suffixe aux tables des modèles

41664 vues
22 octobre 2011
Jérémie
zendframework-logo

 

Je travaille sur une application qui est en fait le regroupement de deux applications. Les tables sont distinguées par un suffixe pour distinguer si les données qui s'y trouvent appartiennent à l’une ou l’autre des applications. Le tables communes aux deux applications, elles, ne possèdent pas de suffixe.

Les tables de modèles (ou "model tables") sont un concept clé dans le Zend Framework, qui est un framework open source pour le développement d'applications web en PHP. Les tables de modèles sont utilisées pour représenter des données dans une base de données relationnelle et fournissent une interface pour interagir avec ces données à travers des requêtes de base de données.

Dans le Zend Framework, chaque table de modèle est représentée par une classe PHP qui étend la classe de base Zend_Db_Table_Abstract. Cette classe de base fournit des méthodes pour accéder à la base de données, telles que select(), insert(), update() et delete(), ainsi que des méthodes pour définir les relations entre les tables de la base de données.

Les tables de modèles sont souvent utilisées avec le modèle de conception MVC (Modèle-Vue-Contrôleur) pour séparer la logique d'affichage (la vue) de la logique de traitement des données (le modèle). Dans ce modèle, les tables de modèles sont utilisées pour stocker et récupérer les données, tandis que les contrôleurs sont utilisés pour traiter les données et générer des réponses HTTP pour les vues.

Pour ajouter de façon automatique le suffixe correspondant à l’une ou l’autre des applications, j’ai créé la table abstraite My_Db_Table_Abstract qui hérite de Zend_Db_Table_Abstract:
abstract class My_Db_Table_Abstract extends Zend_Db_Table_Abstract{

public function __construct($config = array())
{
$this->_name=APPLI.$this->_name;
parent::__construct();
}
}
?>

Je définis ensuite les modèles correspondants comme héritant de My_Db_Table_Abstract et le problème est réglé.