Il y a même un tuto de chez vous retrouver sur le net
http://ftp-developpez.com/helmi-drid...utdebutant.pdf
Mais cela me semble bien compliqué.....
Je continue pour voir si je trouve sinon je la crée moi même... si tu en as une....
Merci Grunk
Il y a même un tuto de chez vous retrouver sur le net
http://ftp-developpez.com/helmi-drid...utdebutant.pdf
Mais cela me semble bien compliqué.....
Je continue pour voir si je trouve sinon je la crée moi même... si tu en as une....
Merci Grunk
Esteban
Quelque chose comme ceci ?
Je vais tester....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 { } ?>
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 ?
Esteban
Je ne trouve ta réponse... vide ?
Esteban
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
qui me donne dans le log:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function isrt_log($email, $event) { return( $this->logging->isrt_logging("jencrapahute@gmail.com","login") ) ; }
je mets la même instruction en 260 et cela passe....
Code : Sélectionner tout - Visualiser dans une fenêtre à part [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 n'y comprends rien....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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") ;
Merci
Esteban
Bonjour,
logging n'est pas instancié au moment où tu l'appelles :
soit tu l'instancie dans le constructeur et du coup tu le fais pas dans execute(), soit tu modifies ta fonction isrt_log :
ps: ton code source est très, très difficilement lisible, tu devrais indenter tes commentaires au meme niveau que tes déclarations de fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public function isrt_log($email, $event){ if($this->logging === NULL) $this->initLogging(); return $this->logging->isrt_logging("jencrapahute@gmail.com","login"); } public function initLogging(){ $this->logging = new Logging($this->db, $this->debug) ; }
aussi, t'as une fonction qui s'appelle isrt_logging et une autre isrt_log, c'est vraiment pas clair du tout.
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 ?
Ma supposition de non instanciation est-elle logique et possible ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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") ;
@ te lire
Esteban
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
Message qui semble absurde devant ce cas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part [16-Jun-2010 15:12:06] PHP Fatal error: Class 'Environ' not found in F:\WebSites\jecrapahute\class\newDB.php on line 11
Voici le fichier inclus par la ligne décommentée
Qui est strictement identique et ne fait pas appel à la classe du message d'erreur....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ; } } // ------------------------------------------------------------------------------------------------------------------------------- // ?>
J'pige plus.....
@te lire
Esteban
Le code est-il un peu plus clair ainsi ?
merci Thomas
Esteban
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, @+
Esteban
Bonjour, je ne sais pas ce que recouvrent tes appelations "dispatcher ou container", fais-tu référence à une notion d'écouteur / écouté (évenements) ?J'ai cherché 2h hier sur le net pour une classe SIMPLE de container ou de dispatcher comme je t'ai expliqué hier....
Si oui il existe le pattern SplSubject / SplObserver.
http://fr.php.net/splsubject
http://julien-pauli.developpez.com/t.../observer-spl/
Thomas,
Je lis le tuto à ce sujet.....
Merci même si pas utile dans ce cas, cela servira tooujours.
En fait mon problème est le suivant, j'ai un certain nombre de classe Ressources
lesquelles sont appelées par des classes Users...
Le point commun est la DB....
Je cherche un dispatcher ou outil du même genre afin d'éviter ce que je fais maintenant, le passage de pointeur... ce n'est pas OOP cela !
Merci Encore !
Esteban
Esteban
Il te suffit d'utiliser des singleton.
http://g-rossolini.developpez.com/tu...patterns/#LIII
Thomas,
Après un bref survol du tuto où l'on passe bcp de page sur les erreurs et la gestion de ErrorHandler.... je suis entrai de décharger le code mais cela me parait être une usine à gaz pour qlqchose de très simple au demeurant !
@+
Esteban
Esteban
Tu n'as pas compris le tuto, la gestion des erreurs c'est un exemple d'implémentation du pattern SplSubject/SplObserver pour montrer comment on peux attacher des évenements. Il ne faut pas survoler mais lire.Après un bref survol du tuto où l'on passe bcp de page sur les erreurs et la gestion de ErrorHandler....
C'est très light comme solution pourtant, ca n'a rien d'une usine à gaz.je suis entrai de décharger le code mais cela me parait être une usine à gaz pour qlqchose de très simple au demeurant !
Thomas...
Quoiqu'on en parle à maintes endroit du tuto, la source est indisponible sur
http://github.com/jpauli/Observer-SPL-PHP-Pattern
Je suis désolé....
Esteban
Esteban
ok..... tu crois vraiment que cela peut résoudre mon problème tel que je te l'ai expliqué ?
Esteban
Esteban
Thomas
Puis-je partir sur ce schéma pour construire mon Provider ?
Cela me fera un bon exercice
PS: j'ai 2 livres PHP5 devant moi et aucun de mentionne comment supprimer un élément d'un tableau associatif....
Estaban
Esteban
Voici :j'ai 2 livres PHP5 devant moi et aucun de mentionne comment supprimer un élément d'un tableau associatif....
Si c'est dans les tréfonds de ton tableau que tu veux supprimer une occurence il faut parcourir avec foreach.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $array = array('boy' => 'Tom', 'girl' => 'Hajar'); unset($array['boy']);
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 ?
Esteban
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 @+
Esteban
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager