Bonjour à tous (..et à toutes, on sait jamais),
je suis nouveau dans le monde du PHP5 .
Je suis actuellement en train de développer pour une application personnelle, un petit système de Plugins .
L'idée est la suivante : Mes "plugins" sont des classes rangées dans un dossier spécifique .
Au lancement de l'appli. PHP, il y à :
- récupération de la liste des fichiers du dossier /plugins
- récupération des noms des classes
- Vérification de la présence de certaines proprietés dans la classe (exemple : IsPlugin, PluginName, ..etc..) .
- Construction d'un array renvoyant une collection de Plugins
J'utilise pour la partie vérification de présence de proprietés, la Reflection,
à savoir qqchose du genre :
$R = new ReflectionClass( $class );
$props = $R->getStaticProperties( );
Mon problème :
- J'ai besoin de connaitre la liste de tous les plugins présents dans ce dossier
- J'ai besoin de savoir, pour chacun, s'il s'agit d'un plugin et implémente certaines fonctions et possède certaines proprietés
- J'ai besoin d'effectuer ces opérations à chaque chargement de la "page" (de l'appli quo!)
=> Tout ceci fonctionne bien connement, mais j'ai comme l'impression que je m'y prend mal. Car... pour faire de la reflection, il y à nécessité d'Instanciation de toutes les classes, même si je n'ai besoin que de quelques aspects de ces classes . Ce qui, allourdi légerement l'éxécution du code (pour 10 petites classes, ça passe, mais après, j'en doute.) .
Avez-vous en tête d'autres moyens de parvenir à mettre en place un système de plugins, sans faire tout passer par une BDD .
J'ai pensé à du XML,stocké soit en BDD soit dans des fichiers, mais je trouve pas ça top : mon but était d'avoir tout dans mes classes .
Help me![]()
Partager