DBfactory
La classe DBfactory permet de manipluer simplement les classes d' abstraction de base de donnée presente sur ce site. ATTENTION, cette classe utilise PHP 5 !
Les Méthodes
- DBfactory - Nouvelle Instance
Exemples
La Source
<?php
// Repertoire d installation de la (ou des ) classe(s) d' abstraction
// pour la classe SQLite par exemple , le fichier source doit s apeller ./include/sqlite.php
// terminer par un slash /
define( 'CLASS_DIR' , './include/' );
/**
* @return
* @param $class Nom de la classe apellée et non declarée
* @desc Mécanisme de chargement automatique d une classe selon son nom
* @comment Necessite PHP 5
* @status PRIVATE
*/
function __autoload($class){
$source = CLASS_DIR . $class . '.php';
//echo "<b>$source</b><br/>";
if(@is_readable($source))
@include_once($source);
else {
echo 'Impossible d\' inclure le fichier : ' . $source;
exit;
}
}
class DBfactory {
private $O = '';
private $DB_type = '';
/**
* @return
* @param Le nom de la classe d abstraction a utiliser
* @desc Constructeur de la classe
* @comment Necessite PHP 5
* @status PRIVATE
*/
function __construct($DB_type) {
$this->DB_type = $DB_type;
$this->O = new $DB_type;
}
/**
* @return Resultat provenant de la classe d abstraction choisie
* @param $name Nom de la methode apellée
* @param $arguments Arguments passés a cette methode
* @desc Cette methode est apellée si l utilisateur apelle une methode inconnue
* On s en sert donc pour apeller la methode necessaire de la classe d abstraction
* @comment la methode __call() Necessite PHP 5
* @status PRIVATE
*/
function __call($name, $arguments) {
//echo 'on m a apelle ? ' . $name . var_export($arguments, true);
return call_user_func_array( array($this->O, $name), $arguments);
}
}// end class
?>
<?php
$DB = new DBfactory('SQLite');
if($DB -> connect('unebase'))
echo 'Connecté-------';
else echo 'bouh' .$DB->return_error();;
?>
// Repertoire d installation de la (ou des ) classe(s) d' abstraction
// pour la classe SQLite par exemple , le fichier source doit s apeller ./include/sqlite.php
// terminer par un slash /
define( 'CLASS_DIR' , './include/' );
/**
* @return
* @param $class Nom de la classe apellée et non declarée
* @desc Mécanisme de chargement automatique d une classe selon son nom
* @comment Necessite PHP 5
* @status PRIVATE
*/
function __autoload($class){
$source = CLASS_DIR . $class . '.php';
//echo "<b>$source</b><br/>";
if(@is_readable($source))
@include_once($source);
else {
echo 'Impossible d\' inclure le fichier : ' . $source;
exit;
}
}
class DBfactory {
private $O = '';
private $DB_type = '';
/**
* @return
* @param Le nom de la classe d abstraction a utiliser
* @desc Constructeur de la classe
* @comment Necessite PHP 5
* @status PRIVATE
*/
function __construct($DB_type) {
$this->DB_type = $DB_type;
$this->O = new $DB_type;
}
/**
* @return Resultat provenant de la classe d abstraction choisie
* @param $name Nom de la methode apellée
* @param $arguments Arguments passés a cette methode
* @desc Cette methode est apellée si l utilisateur apelle une methode inconnue
* On s en sert donc pour apeller la methode necessaire de la classe d abstraction
* @comment la methode __call() Necessite PHP 5
* @status PRIVATE
*/
function __call($name, $arguments) {
//echo 'on m a apelle ? ' . $name . var_export($arguments, true);
return call_user_func_array( array($this->O, $name), $arguments);
}
}// end class
?>
<?php
$DB = new DBfactory('SQLite');
if($DB -> connect('unebase'))
echo 'Connecté-------';
else echo 'bouh' .$DB->return_error();;
?>