Class OOP vous avez dit facile ? DB dipatch
Quelque chose comme ceci ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
<?php
class dbDispatch
{ private static $instance = array( ) ;
/**
* $key => $val
* "instance" => "dbHandler" ,
*/
/**
* Skeleton Constructor
*
*/
function __construct($mySQL , $debug)
{ $this->mySQL = $mySQL ;
$this->debug = $debug ;
}
/**
* Skeleton Executor
*
*/
function execute()
{}
/**
* Skeleton Destructor
*
*/
function __destruct()
{}
/**
* =========================================================================================================================================================
*/
/***
* @desc : ajout éventuel d'une instance dans le tableau
* @param : name of table, $dbHadler
* @return : true or throw Execption
*/
function setInstance($dbInstance,$classHandler)
{
if (is_array($this->array) )
{
//
// on vérifie que la dbinstance n'est pas déjà enegistrée
// ---------------------------------------------------
if ( in_array($this->instance,$dbInstance) )
{ //
// Already IN
// 2) On la (re)sélectionne si necessaire
// ---------------------------------------
;
}
else
{
//
// Not Yet IN
// 1) On l'enregistre
// 2) On la (re)sélectionne si necessaire
// ---------------------------------------
$this->instance[] = array($dbInstance , $classHandler) ;
}
return( $this->connectDb() ) ;
}
else
user_error("Not an array" , E_USER_NOTICE) ;
;
// Throw Exception ?
}
/***
* @desc : Selectionne un BD
* @param : none
* @return : true if ok else Exception ?
*/
fonction connectDB()
{ if ( ($this->MYsql->dbSelect() )
return(true) ;
else
user_error("db not connected" , E_USER_NOTICE) ;
;
// throw exception ?
}
function unsetInstance($dbinstance) // au moment du dbClose
{
}
?> |
Je vais tester....
Mes doutes sont que je ne suis pas sur que in_array foncitonne puisque j'ai un tableau de tableau....
Je bouqinne pour voir comment supprimer l'entrée dans unsetInstance....
Des suggestions ? :P
1 pièce(s) jointe(s)
Class OOP vous avez dit facile ?
Grunk,
Je suis ennuyé car je vais te demander quelque-chose de bête.
Meis 3 semaines de coma n'aide pas.... bref.
Je veux mais ma tête ne suit pas....
Je te mets newSkelt en pièce attachée.... je t"explique:
tu as en 405
Code:
1 2
| function isrt_log($email, $event)
{ return( $this->logging->isrt_logging("jencrapahute@gmail.com","login") ) ; } |
qui me donne dans le log:
Code:
[16-Jun-2010 13:55:43] PHP Fatal error: Call to a member function isrt_logging() on a non-object in F:\WebSites\jecrapahute\class\newSkelt.php on line 406
je mets la même instruction en 260 et cela passe....
Code:
1 2 3
| $this->logging = new Logging($this->db, $this->debug) ;
$this->logging->execute() ; // donne un user_error dans le log.php
// $this->logging->isrt_logging("jencrapahute@gmail.com","login") ; |
Je n'y comprends rien.... :calim2::calim2:
Merci :help:
Class OOP vous avez dit facile ?
Bonjour Thomas,
Je ne comprends pas ta réponse, je m'explique.
isrt_log vient d'une classe Signon d'ou j'avais des problèmes pour accéder à ma table Logging.
Donc j'ai fait isrt_log dans Skelet appelé depuis Signon qui fait le relais :
Mais cela tu ne pouvais savoir.
Maintenant, si je comprends ton commentaire, ma classe n'est plus instanciée en 416 car il s'agit des 2 mêmes instructions que celle utilisée juste après l'instanciation de Logging en 260...
Tu es d'accord sur ce raisonnement ?
Code:
1 2 3 4
|
function isrt_log($email, $event)
{ return( $this->logging->isrt_logging("jencrapahute@gmail.com","login") ) ; }
// $this->logging->isrt_logging("jencrapahute@gmail.com","login") ; |
Ma supposition de non instanciation est-elle logique et possible ?
@ te lire :calim2:
Class OOP vous avez dit facile ?
Thomas,
J'ai un autre souci afin d'alléger ma source.
Je veux mettre ma classe Magic dans un fichier externe, je l'as supprime donc et je décommente la ligne 7
Et bizarre voici ce que le donne le php.log
Code:
[16-Jun-2010 15:12:06] PHP Fatal error: Class 'Environ' not found in F:\WebSites\jecrapahute\class\newDB.php on line 11
Message qui semble absurde devant ce cas...
Voici le fichier inclus par la ligne décommentée
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| <?php
require_once $_SERVER["DOCUMENT_ROOT"] . "/class/define/equate.php" ;
class Magic
{ private $properties = array() ;
private $debug ;
/**
* Skeleton Constructor
*
*/
function construct($debug)
{ $this->debug = $debug =true ;
}
/**
* Skeleton Destructor
*
*/
function destruct( )
{ }
/**
* Magic prperties __get
*
*/
function __get($property)
{ //if ($this->debug)
// user_error("__get used[".$property."]" , E_USER_NOTICE) ;
return( (isset($this->properties[$property])) ? $this->properties[$property] : NULL ) ;
}
/**
* Magic prperties __set
*
*/
function __set($property, $value)
{
//if ($this->debug)
//user_error("__set used[".$property."]" , E_USER_NOTICE) ;
return($this->properties[$property] = $value) ;
}
}
// ------------------------------------------------------------------------------------------------------------------------------- //
?> |
Qui est strictement identique et ne fait pas appel à la classe du message d'erreur....
J'pige plus.....
@te lire
1 pièce(s) jointe(s)
Class OOP vous avez dit facile ?
Le code est-il un peu plus clair ainsi ?
merci Thomas:ccool:
OOP vous avez dit facile ?
Grunk,
J'ai cherché 2h hier sur le net pour une classe SIMPLE de container ou de dispatcher comme je t'ai expliqué hier....
Je sais qu'il peut paraître facile de demander sans chercher mais ce n'est pas le cas !!!!! :mrgreen
En aurais tu une relativement aisé et qui ne dépend pas de ZEND (par exemple) cela me ferait grand plaisir et me ferait avancer, j'ai des difficultés à développer la mienne....
Merci, @+
Provider / Supplier CLASS + OOP
Thomas
Puis-je partir sur ce schéma pour construire mon Provider ?
Cela me fera un bon exercice:P
PS: j'ai 2 livres PHP5 devant moi et aucun de mentionne comment supprimer un élément d'un tableau associatif....
Estaban
Class OOP vous avez dit facile ?
Merci Thomas
Je suis entrain de terminer l'armature de classes Provider/Requestor centralisée par un Container qui sera mon skelet....
Bonne soirée @demain ?:mouarf:
OOP et arch Vendeur/Acheteur
Merci Thomas,
Je ne savais pas que supprimer d'un simple tableau et d'un tableau associatif pouvait se faire de la même façon sauf que dans le dernier cas on fait l'unset de la clé....
Peux-tu, puisque tu connais un peu + ma problématique prendre connaissance du Post que j'ai émis ce matin:
http://www.developpez.net/forums/d94...e/#post5292892
Je pense que au niveau de l'idée (et de PHP...) j'ai des choses à apprendre de toi.
Merci et @+ :)