PHP5 - GESTION DE MODULES EN OBJET

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 14 nov. 2006 à 18:50
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008 - 20 mai 2007 à 15:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40315-php5-gestion-de-modules-en-objet

audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
20 mai 2007 à 15:40
Salut,
Je ne sais pas si tu es en train de refaire une nouvelle version de cette source mais j'ai relevé un peu bug dans cette version.

C'est 3 fois rien et c'est facilement corrigeable : lorsque tu initialises plusieurs fois une classe qui est en status 2 une seule a la variable debug initialisée.
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
18 nov. 2006 à 15:45
"Oui parce que je veux bien laisser le choix de la configuration, et Non parce que SQL ne doit pas être utilisé puisqu'il est mis en tant que module. A la limite, je devrais découper mon Core en 2 : Une partie "critique" (genre classe sql et gestion de session) et une autre partie "module" (genre classe users, commentaires, galleries etc...).
Oui je pourrais faire ca en effet :) Jvais m'y attarder tiens."

Pour moi un module est une partie escamotable du site... un plug-in... pas une partie du core du site... je définnirais donc plutot comme module les sous catéorie d'un site (gallerie photos, espace de téléchargement)... mais c'est une question de sémantique qui n'enleve rien à la qualité de la source... .. .

J'ais une class qui ressemble à la tienne dans le principe... mais pour des modules comme je le définis plus haut... on y retrouve des options tel que...

- isActiv : comme statut pour toi sauf que c'est un booléen la notion de debug étant gérés sur la globalité du site et non par module
- hasAdmin : possede (ou non) une partie administrable à inclure en back office
- hasMain : est directement visionable ou doit etre inclus dans le site

Si ça peut te donner des idées... .. . ;o)

Sinon comme d'hab pas grand chose à redire (muarf même pô drole lOl)... si ce n'est que je ne comprend pas trop l'interet du destructeur de ta classe Core... .. .

Pour la variable $classname pourquoi ne pas la stocker dans un attribut plutot que de faire plusieur fois...

$classname = strtolower(get_class($this));

Mais c'est un détail... .. .

@ tchaOo°
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
15 nov. 2006 à 18:58
"C'est une nouvelle version de ta précédente source?" On peut dire ca comme ca oui :)
Encore, comme Mala vient de l'expliquer, ceci est plus du code concret qu'un simple "blabla" que j'avais fait il y a quelques mois :)

"et je dirais que le choix du xml ou d'une base de données est à chacun en fonction de ses moyens/preférences/..." Oui et Non.
Oui parce que je veux bien laisser le choix de la configuration, et Non parce que SQL ne doit pas être utilisé puisqu'il est mis en tant que module. A la limite, je devrais découper mon Core en 2 : Une partie "critique" (genre classe sql et gestion de session) et une autre partie "module" (genre classe users, commentaires, galleries etc...).
Oui je pourrais faire ca en effet :) Jvais m'y attarder tiens.

"Maintenant je me suis toujours pune question sur les systèmes modulaire : comment associé ça avec un système de template (comme PHPnuke par exemple)."Simple, avec du try{}catch{}.
Tu fais ca :
try {
$x = new class();
// Signifie que la classe est instanciable, donc que le module est chargé. On peut continuer et afficher la suite sans problème.
} catch ( Exception $e ) { // Voir à faire une classe d'exception plus poussé aussi.
// Ici, la classe n'est pas instanciable, donc le module est désactivé. On fait tout autre chose.
}

Voila, c'est aussi simple que ca.

"Pourrais-je l'avoir en zip."Oui, quand j'aurais fais des modifs dessus. Un gros travail est en cours, je retravaille le Core au niveau de la gestion des modules (via numéro ID unique plutot que via un nom d'instance).

"Es-tu facher avec __autoload() ?" Pas du tout, mais je voulais pas me faire chier avec une fonction externe à mes classes pour l'exemple du code :)
Rassure toi, __autoload() est bien présent chez moi ^^


Je préviens pour dire que je vais faire une grosse modif du code... Mais que j'attends toujours autant d'idées pour l'améliorer :)
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
15 nov. 2006 à 14:48
// On inclus les fichiers : << Es-tu facher avec __autoload() ?
alpha386 Messages postés 16 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 15 novembre 2006
15 nov. 2006 à 14:17
Salut

Pourrais-je l'avoir en zip.

Bye
cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
15 nov. 2006 à 11:31
sinon la classe est pas mal intérréssante (et je dirais que le choix du xml ou d'une base de données est à chacun en fonction de ses moyens/preférences/...). Maintenant je me suis toujours pune question sur les systèmes modulaire : comment associé ça avec un système de template (comme PHPnuke par exemple).

Voilà. Ce qu'il y a de bien c'est que sur phpcs on va bientôt pouvoir se faire un moteur de site web (acceptant les modules) en php5 avec toutes nos sources. ;)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 nov. 2006 à 08:16
Largement plus poussée; la précédente était plus un tuto expliquant une idée. Là, c'est vraiment la mise en code de cette idée.
cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
14 nov. 2006 à 19:46
C'est une nouvelle version de ta précédente source?
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 nov. 2006 à 18:50
On en a déjà discuté donc...juste le 10, pas de commentaire (pour le moment).