Classes Modules - ModuleInterface
Table des matières
Une des caractéristiques clé de PHPBoost est sa modularité. Mais cela signifie aussi que tous les modules doivent être absolument indépendant des autres.
C'est justement ce problème d'indépendance des modules qui empêche les modules d'interagir entre eux.
L'intérêt de ces classes devrait donc vous sauter au yeux maintenant que vous êtes au fait du problème.
Ces deux classes permettent donc moyennant un module légèrement modifié d'accéder à certaines de ces fonctionnalité à partir d'un autre module. Ainsi il devient possible d'effectuer des recherches sur le site en entier ou de voir les dernieres actions d'un membre, ...
Bien sûr, tout cela dans le cas ou les modules implémentent les bonnes fonctionnalités.
Ces fonctionnalités sont compatibles uniquement avec PHPBoost 2.1 et supérieur.
La classe ModuleInterface implémente des méthodes permettant de savoir quelles fonctionnalités sont disponibles pour un module en particulier.
Ainsi donc, il faudra créer une classe portant le nom du module qui héritera de cette classe, afin de pouvoir utiliser tout ce qui va suivre.
Vous ne devrez jamais avoir à utiliser directement la classe ModuleInterface. Il faudra donc toujours utiliser la classe du module concerné qui hérite de celle-ci.
Tous vos accès à un/des module(s) doivent passer par la classe Modules et la méthode GetModule.
Ces classes sont donc extrêmement importantes pour garder l'indépendance des modules, et à ce titre, il faut absolument tester l'absence d'erreurs lors de la construction d'un objet module via ce petit bout de code
de même lors de l'appel à une fonctionnalité, il y a deux façon de se prémunir contre les erreurs lors de l'appel à une fonctionnalité
ou bien
Vous developpez votre propre module et voulez qu'il soit compatible avec ces différent appels, alors suivez ce lien :
Comment rendre son module compatible avec l'interface de communication
Tout module digne de ce nom doit absolument être compatible avec cette interface de communication
Introduction
Une des caractéristiques clé de PHPBoost est sa modularité. Mais cela signifie aussi que tous les modules doivent être absolument indépendant des autres.
C'est justement ce problème d'indépendance des modules qui empêche les modules d'interagir entre eux.
Pourquoi utiliser ces classes ?
L'intérêt de ces classes devrait donc vous sauter au yeux maintenant que vous êtes au fait du problème.
Ces deux classes permettent donc moyennant un module légèrement modifié d'accéder à certaines de ces fonctionnalité à partir d'un autre module. Ainsi il devient possible d'effectuer des recherches sur le site en entier ou de voir les dernieres actions d'un membre, ...
Bien sûr, tout cela dans le cas ou les modules implémentent les bonnes fonctionnalités.
Compatibilité
Ces fonctionnalités sont compatibles uniquement avec PHPBoost 2.1 et supérieur.
Classe Modules
Méthodes
- Functionnality() : Exécute la fonctionnalité sur le différents modules spécifiés.
- GetAvailablesModules() : Renvoie la liste des modules disponibles pour une fonctionnalité donnée.
- GetModule() : Construit et renvoie le module demandé.
- Modules() : Construit un objet Modules.
Classe ModuleInterface
Directives
La classe ModuleInterface implémente des méthodes permettant de savoir quelles fonctionnalités sont disponibles pour un module en particulier.
Ainsi donc, il faudra créer une classe portant le nom du module qui héritera de cette classe, afin de pouvoir utiliser tout ce qui va suivre.
Vous ne devrez jamais avoir à utiliser directement la classe ModuleInterface. Il faudra donc toujours utiliser la classe du module concerné qui hérite de celle-ci.
Tous vos accès à un/des module(s) doivent passer par la classe Modules et la méthode GetModule.
Méthodes
- GetInfo() : Renvoie les infos sur le module.
- Functionnality() : Exécute la fonctionnalité si elle est présente.
- HasFunctionnality() : teste l'existence d'une fonctionnalité pour le module.
- GetErrors() : Renvoie les erreurs rencontré.
- ModuleInterface() : Construit un objet ModuleInterface.
Constantes
- MODULE_NOT_AVAILABLE : Indique que le module demandé n'est pas activé sur le site.
- ACCES_DENIED : L'utilisateur n'a pas le droit d'accéder au module.
- MODULE_NOT_YET_IMPLEMENTED : Le module ne dispose pas d'interface de communication avec le noyau.
- FUNCTIONNALITIE_NOT_IMPLEMENTED : Le module dispose d'un interface, mais ne dispose pas de la fonctionnalité demandé.
Exemple d'utilisation
Ces classes sont donc extrêmement importantes pour garder l'indépendance des modules, et à ce titre, il faut absolument tester l'absence d'erreurs lors de la construction d'un objet module via ce petit bout de code
Code PHP :
<?php ... include_once('../kernel/framework/modules/modules.class.php'); $modules = new Modules (); $myModule = $modules->GetModule('mymodule'); if ($myModule->GetErrors() == 0) { // traitement } else { // annulation du traitement } ... ?>
de même lors de l'appel à une fonctionnalité, il y a deux façon de se prémunir contre les erreurs lors de l'appel à une fonctionnalité
Code PHP :
<?php ... $reslt = $myMod->Functionnality('fct',$args) if ( $myMod->GetErrors() == 0 ) { // traitement de $reslt } else { // annulation du traitement } ... ?>
ou bien
Code PHP :
<?php ... if ( $myMod->HasFunctionnality('fct') == 0 ) { $reslt = $myMod->Functionnality('fct',$args) // traitement de $reslt } else { // annulation du traitement } ... ?>
Comment rendre son module compatible avec ces fonctionnalité
Vous developpez votre propre module et voulez qu'il soit compatible avec ces différent appels, alors suivez ce lien :
Comment rendre son module compatible avec l'interface de communication
Tout module digne de ce nom doit absolument être compatible avec cette interface de communication