IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MkFramework Discussion :

De quel origine est getModuleList


Sujet :

MkFramework

  1. #1
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut De quel origine est getModuleList
    Salut,

    Tout d'abord, Je viens de mettre à jour le Builder avec la nouvelle version et encore une fois tu déchires...

    Venons en au sujet, je reprends dans un vieux projet des modules que j'avais créé y'a quelques années. L'un de ces modules exploite la fonction "getModuleList"

    J'ai un doute sur l'origine de cette fonction, je ne sais plus si elle de moi ou de toi , car je ne l'a trouve pas dans la dernière mouture du framework.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    /**
             * Retourne toutes les actions public de chacun des modules
             * @param array $tExclusion nom des modules à exclure de la liste
             * @return array
             */
           public static function getModuleList($tExclusion=  array()) {
               $tModule=array();
     
                $oDir=new _dir('../module');
                //recuperation liste objet repertoires
                $tDir=$oDir->getListDir();
                foreach($tDir as $oDirModule){
                        $tMethodes=array();
                        //Si l'un des modules termine par Trash on l'ignore
                        if(substr($oDirModule->getName(),-5)=='Trash'){ continue ; }
                        $sModuleName= 'module_'.$oDirModule->getName();                 
     
                        //on exclue le/les modules que l'on veut ignorer
                        if(in_array($sModuleName,$tExclusion)){
                                continue;
                        }
                        $sNameModule = substr($sModuleName,7);
                        //on instancie
                        $oModule=new $sModuleName();
                        //on demande la liste des methodes public			
                        $tMethods=get_class_methods($oModule);                    
                        foreach($tMethods as $sMethod){
                                //on exclue les methodes __get, __set
                                if(substr($sMethod,0,2)=='__'){ continue ; }
     
                                //on garde que les methodes commencant par _ (signe des actions) 
                                if(substr($sMethod,0,1)!='_'){ continue ; }
     
                                $tMethodes[]=$sNameModule.'::'.substr($sMethod,1);
                        }
                        $tModule[$sModuleName]=$tMethodes;                    
                }
               return $tModule;
           }

    Elle se trouvait être pour ma part dans la class_root.php.

    Si ce n'est pas une de tes conceptions je dois tout de même l'exploiter pour mon futur code et j'ai toujours un trou de mémoire sur comment surcharger une class afin de ne pas parasiter une source.

    Peux-tu m'apporter tes lumières

    Merci,
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Oui je le retrouve pas non plus

    si c'est dans _root vous pouvez faire un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class maSurchargeRoot extends _root{
     
    }

    je viens de regarder tout est au pire protected (sauf ma methode loadAutoload() )
    mais sinon rien de bloquant

    donc
    1. vous creer votre classe faisant un extends
    2. dans votre projet vous remplacez new _root par new maSurchargeRoot


    En regardant le code, vous n'en avez plus besoin: c'est utiliser pour le builder pour obenir les actions du module afin de faciliter le formulaire de création du menu

    C'est remplacé par:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    $tModule=module_builder::getTools()->getListModule();
    $tModuleAndMethod=array();
    foreach($tModule as $oModule){
    	$sModuleName=$oModule->getName();
     
    	include module_builder::getTools()->getRootWebsite().'module/'.$sModuleName.'/main.php';
     
    	$tMethods=get_class_methods('module_'.$sModuleName);
    	foreach($tMethods as $i => $sMethod){
    		if($sMethod[0]!='_' or substr($sMethod,0,2)=='__'){ 
    			unset($tMethods[$i]);
    		}
    	}
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Salut,

    Merci, en effet c'est dans le builder :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public function getListModule() {
    		$oDir = new _dir(_root::getConfigVar('path.generation') . _root::getParam('id') . '/module/');
    		$tDir = $oDir->getListDir();
    		$tNewDir = array();
    		foreach ($tDir as $oModule) {
    			$sModuleName = $oModule->getName();
    			if (in_array($sModuleName, array('menu', 'builder', 'example', 'exampleembedded'))) {
    				continue;
    			}
    			if (!file_exists(module_builder::getTools()->getRootWebsite() . 'module/' . $sModuleName . '/main.php')) {
    				continue;
    			}
     
    			$tNewDir[] = $oModule;
    		}
    		return $tNewDir;
    	}


    Mais ! Ôtez moi d'un doute le Builder, on ne le déploie pas avec le site lorsque on fait un livrable ?

    Donc je suis obligé de faire une classe qui reprends mafonction ?
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Non justement c'est pour ça que j'ai changé le mode de distribution

    c'est pour bien distinguer

    - le builder qui sert a creer, editer, generer son site
    - la librairie du framework qui contient toutes les classes necessaires à un site


    Le builder n'est pas à deployer sur le site de production

    Et cette methode ne doit pas etre utiliser dans votre site, pourquoi faire ? elle liste les actions d'un module en parsant les repertoires, c'est tres lourd: juste utiliser pour le module de création de menu
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Petit curieux

    J'ai créé 3 modules : Accounts, Groups et Permissions.

    J'exploite cette méthode pour la gestion des permissions.

    Nom : permissions.PNG
Affichages : 156
Taille : 32,7 Ko
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Je vois l'idée mais c'est peu performant, apres vous pouvez toujours embarquer cette methode dans une classe plugin ainsi vous la mettez sur les projets où vous en avez besoin

    mais je vous invite à creer un "cache" car comme je l'écris plus haut c'est gourmand, j'ai ecris cette methode pour le builder qui n'a pas de contrainte de performance
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Je viens de constater que l'ensemble du module auth et gestion de groupe avait été retravaillé depuis la dernière fois que j'avais l'exploité.

    Il faut que je retravaille sur cette base.

    Je partagerais le contenu si je suis satisfait de mon travail
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  8. #8
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Avec plaisir
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/12/2016, 12h09
  2. reconnaitre quel windows est installé sur un PC
    Par oeil de nuit dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 13/12/2005, 15h53
  3. Réponses: 4
    Dernier message: 14/10/2005, 19h53
  4. comment savoir quel menu est en surbrillance?
    Par LRobi dans le forum MFC
    Réponses: 2
    Dernier message: 27/01/2005, 09h04
  5. Savoir quel OS est installer sur une machine
    Par batmat86 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/06/2004, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo