Soyez le premier à donner votre avis sur cette source.
Snippet vu 9 713 fois - Téléchargée 25 fois
<?php // Toute classe doit hériter de celle ci. abstract class Core { static private $module = array(); static private $modconf = NULL; public function __construct($modname) { if ( !isset(self::$modconf) ) self::$modconf = simplexml_load_file('./class/init.xml'); if ( self::isModLoadable($modname) ) { self::$module[$modname] = TRUE; } else { throw new Exception('Module impossible à instancier'); } } static private function isModLoadable($modname) { foreach ( self::$modconf->module as $module ) { if ( (string) strtolower($module->name) == strtolower($modname) && (string) strtolower($module->loadable) == 'true' ) return TRUE; } return FALSE; } } // Voici donc la classe en elle-même. C'est un truc tout simple n'est-ce-pas ? // L'emploi des propriétés statiques est faite pour controler les modules. (et encore, c'est pas très poussé pour le moment ! // Voici le fichier 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> <?php // La aussi, c'est du simple, on voit aisément la relation entre la classe du haut et le fichier ci-dessus. // Prenons une classe d'un projet : class x extends Core { public $y; private $z; public function __construct() { parent::__construct(__CLASS__); } // .... etc... } // En instanciant mon objet, je vais vérifier via la méthode statique si je peux oui ou non utiliser mon module. // Voici comment se passe l'instanciation : try { $x = new x; $x->doSomething(); $x->try(); } catch ( Exception $e ) { echo $e->getMessage(); } // Que va t'il se passer ? Si le module 'x' est présent dans mon fichier XML, et que 'loadable' => TRUE alors je peux continuer à utiliser mon objet, SINON on passe par la case d'exception. // On peut voir ca avec un système de news et de commentaires. // Imaginons qu'on puisse n'avoir que les news et les commentaires desactivés : try { $news = new NewsFactory; $news->method(); // ... // Fin d'affichage de la news, affichage des commentaires : try { $comments = new CommentsFactory; $comments->show(); // ... } catch ( Exception $e1 ) { // Signifie que les commentaires seront desactivés } } catch ( Exception $e2 ) { // Signifie que les news et les commentaires sont desactivés } ?>
25 juil. 2006 à 07:16
25 juil. 2006 à 02:32
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 ;)
24 juil. 2006 à 09:20
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.
23 juil. 2006 à 17:59
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 :)
22 juil. 2006 à 22:23
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.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.