Pimcore – Ajouter sa propre couche de base de données
Pimcore a une couche de base de données lié à Zend Framework.
On peut vouloir gérer ses propres commandes sql comme on le souhaite. Pour ça, je me suis amusé à créer une classe pour ça.
Elle repose sur la configuration de pimcore.
<?php /** * Couche base de données * * @category Website * @package Cultivonsleweb * @author Arnaud Méhat pour Cultivons le web <contact at cultivonsleweb.com> */ class Website_Cultivonsleweb_Db { public $db; protected $host = ''; protected $username = ''; protected $password = ''; protected $dbname = ''; /** * Initilisation de connection à la base de données * * @return object * @access public */ public function init (){ $this->loadConf (); $this->db = Zend_Db::factory( 'Pdo_Mysql', array ( 'host' => $this->host, 'username' => $this->username, 'password' => $this->password, 'dbname' => $this->dbname ) ); $this->db->getConnection(); return $this->db; } /** * Chargement du fichier de configuration pour récupérer les paramètres d'accès à la base de données * * @return void * @access public */ public function loadConf (){ if ( file_exists (PIMCORE_CONFIGURATION_SYSTEM)){ $xml = simplexml_load_file(PIMCORE_CONFIGURATION_SYSTEM); $this->host = $xml->database->params->host; $this->username = $xml->database->params->username; $this->password = $xml->database->params->password; $this->dbname = $xml->database->params->dbname; } else { die ('Connexion DB impossible !'); } } }
Voici comment on peut l’utiliser :
$userid = 2; $oDb = new Website_Cultivonsleweb_Db (); $db = $oDb->init (); $sql = "SELECT * FROM users WHERE id='" . $userid . "'"; $result = $db->fetchAll($sql); for ($i=0; $i < count($result); $i++){ $roles = $result[$i]['roles']; } $aRole = explode( ",", $roles); print_r ( $aRole );