PHP5 - CLASSE DE GESTION DE MODULES

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 20 juil. 2006 à 23:39
cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009 - 25 juil. 2006 à 07:16
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/38698-php5-classe-de-gestion-de-modules

cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
25 juil. 2006 à 07:16
De façons objective les deux choix peuvent être les plus rapide cela dépend surtout de l'architecture des scripts et des serveurs utilisé : par exemple l'un des avantage de mysql peut être le fait de refiler le traitement pour la selection de données à une autre machine que celle fesant tourner apache (et ainsi ne pas pénaliser les autres utilisateur du site) => éviter les surcharge de la machine apache. Cette méthode se base sur le principe de la délégation des taches de façons à améliorer les rendements. Il en existe d'autre qui se valent et dispose chacune de leurs avantages et inconvénients. Il est aprés possible d'étendre le raisonement à l'architecture des site en eux mêmes.
cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009
25 juil. 2006 à 02:32
Salut,

Est-il plus rapide d'utiliser XML plutôt que MySQL car je comprend qu'il est très utile de créer des fichiers XML pour ensuite générer des fichiers mais pour le reste je n'en vois pas dutout l'utilité ou plutôt l'avantage de devoir gèrer de multiple fichiers plutôt qu'une simple base de données. Merci d'éclairer mes lanternes :)

Je sais pas si ce commentaire à sa place dans cette source mais je tente quand même puisque je veux absolument éclaircir ce point pour ma culture personnelle ;)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 juil. 2006 à 09:20
Hello,

curieusement, moi, je vois ça dans l'autre sens : quel intérêt d'utiliser une base de données quand on peut s'en passer ? La plupart des sites s'appuient lourdement sur une base de données. Quand c'est un petit site perso, pas de problème...quand c'est un site plus lourd...on a tout intérêt à soulager le serveur de base de données. J'utilise souvent XML dans ce cadre-ci. XML me sert à faire des tracelog, à faire de la localisation, à faire, comme ici, de la configuration, et parfois même, je m'en sers comme vraie base de données. Pour décrire un produit, par exemple, XML est parfait; il a même un gros avantage par rapport à une bdd : c'est un langage de description de données. Quand je parle de description d'un produit, je ne parle pas de description textuelle : sa description dans le but de le générer par la suite, en pdf par exemple.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
23 juil. 2006 à 17:59
XML peut être utilisé pour tout et n'importe quoi, comme une base de donnée.
J'aurais pu utiliser un fichier .ini, une base de donnée SQL, un simple fichier .txt bref, les possibilités sont nombreuses.
Pourquoi un XML ?
Imagine que la configuration de ton site repose sur un XML, il est assez aisé de pouvoir implémenter mon code dedand.
Bref, les gouts et les couleurs quoi :)

J'aime bien SQL moi aussi, mais la sur le coup jvoulais le faire avec XML. Pour utiliser ma classe avec SQL, suffit de réécrire la classe pour SQL c'est tout :)
cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009
22 juil. 2006 à 22:23
Quel est l'avantage d'utiliser un fichier XML plutôt qu'une table MySQL dans ce cas-ci ? Moi j'utilise XML seulement lorsque j'ai besoin de portabilité comme pour les fichiers de langue ou les configurations selon les styles de site. Mais ici je ne vois pas du tout l'utiliter d'un fichier XML. Est-ce que vous pouvez m'éclairer :) ?

Sinon c'est une bonne source qui aide a comprendre le fonctionnement des modules mais il y a seulement l'élément XML qui me chicotte.
Naixn Messages postés 455 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 22 juillet 2007
21 juil. 2006 à 11:16
Fhx > C'est pas forcément niveau utilisateur non plus.
Genre je sais pas, tu es sur un hébergement Free, donc un truc qui met trois piges à charger de temps à autre. En fonction du temps que ça a mis à charger un partie du code, tu vas loader, ou non, un module du site. Et dans ce cas là, il faut avoir un temps de réponse inférieur à tant de microsecondes, etc.
Enfin c'est un exemple pris à la volée, mais je pense que ça peut servir, et ça s'intègre de toute façon bien, à mon avis, avec le système d'utilisateur :)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
21 juil. 2006 à 11:00
Ah vi en effet Malalam, je savais même pas qu'on pouvait faire ca avec XPath. Je voyais plus ou moins le truc, mais je captais pas comment ca marchait (:/). Hop hop hop, je modifie :p


Pour Naixn, en effet, je pense pouvoir intégrer un système avec niveau d'utilisateur. De toute facon, j'en ai pas le choix :)
cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
21 juil. 2006 à 10:56
<module>
<name>mysql</name>
<loadable>TRUE</loadable>

0 (0 pas loggué, 1 membre, 2 modérateur, etc.)





</module>
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 juil. 2006 à 10:54
Pour être franc, je n'ai pas fait de bench. Mais disons que là, on fait un accès direct au bon noeud, via une recherche Xpath; Xpath étant fait pour, je présume qu'il est optimisé. Alors que dans l'autre cas, on parcourt tout le flux xml (en fait, il y a un Xpath aussi, qui se place à la racine du document, renvoie le document sous forme de tableau d'objets simplexml...on parcourt ce tableau d'objet et on vérifie celui que l'on cherche. Dans mon cas, le xPath se place directement sur le noeud contenant l'élément recherché, il renvoie un tableau avec l'élément name, et l'élément loadable correspondants, auquels on accède directement).
Naixn Messages postés 455 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 22 juillet 2007
21 juil. 2006 à 10:42
Très sympa comme code, que je trouve facile à comprendre, à condition de bien tout lire, donc je ne vois pas de problème :)

Je pense que ce qu'il serait sympa de configurer via le fichier XML, ce serait le nom d'une variable avec sa valeur nécessaire pour que "loadable" soit "true". J'entends par là une variable de session par exemple.
En effet, ça permettrait de loader le module de commentaire seulement si la personne est logguée, via $_SESSION['loggued'] = true, ou $_SESSION['level'] > 0 (0 pas loggué, 1 membre, 2 modérateur, etc.), elle ne pourra voir et poster des commentaire qu'à ce moment là.
Tout ça ne sont que des exemples parmis tant d'autres, mais je pense que ça pourra servir :)

Malalam > Juste pour info de mon côté, le xpath est donc plus optimisé que de faire une recherche en foreach ? :) Je pense que oui, sinon, tu ne l'aurais pas proposé, mais je préfère m'en assurer, et si tu sais pourquoi, si tu pouvais m'en informer :)

Merci à vous deux en tout cas :)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 juil. 2006 à 09:49
Yeah, FhX qui se met doucment au XML :-) Ca me fait plaisir ;-)

Bon...très bonne classe, très bonne idée, très bien codée!

Juste, un truc que je changerais...une petite optimisation que tu vas vite comprendre avec cet exemple :

<?php
$sXml = <<<XML
<?xml version="1.0" encoding="iso-8859-1"?>
<modules>
<module>
<name>mysql</name>
<loadable>TRUE</loadable>
</module>
<module>
<name>news</name>
<loadable>TRUE</loadable>
</module>
<module>
<name>test</name>
<loadable>FALSE</loadable>
</module>
</modules>
XML;
$sMod = 'news';
$oXml = simplexml_load_string ($sXml);
$aResult = $oXml -> xpath ('//module[name="'.$sMod.'"]');
echo $aResult[0] -> loadable;
?>

10, en tous cas !
cs_glad Messages postés 97 Date d'inscription lundi 26 novembre 2001 Statut Membre Dernière intervention 24 février 2012
21 juil. 2006 à 08:20
Salut,

Ca a l'air pas mal ton truc...
On peut avoir un exemple détaillé ?
Merci
à +
cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
21 juil. 2006 à 07:17
Je n'ai pas bien été attentif au code (vient de me reveiller) mais de réputation ça doit être un trés bon code (et pour une fois c'est une classe originale).
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
20 juil. 2006 à 23:39
Quand je me relis, j'ai pas l'impression d'être clair, surtout pour un débutant.
Jme trompe ?