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 );
