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

Discussion :

Demande d'évolutions / améliorations


Sujet :

PhpMyObject

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 181
    Points : 158
    Points
    158
    Par défaut Demande d'évolutions / améliorations
    Salut

    Ce post est dédié aux demandes d'évolutions, si vous souhaitez voir une fonctionnalité rajouté dans PMO, n'hésitez pas
    PhpMyObject teck leader
    http://pmo.developpez.com

    La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.

  2. #2
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut [Résolu dans v0.14] Permettre le déplacement du répertoire class_loader
    Bonjour,

    Pour mes développements, j'utilise habituellement une arborescence comme celle-ci :

    • /
      • apps
        • app1
        • app2
        • etc.
      • css
      • img
      • libs
        • pmo
      • js


    Ceci me donne la possibilité d'utiliser une librairie, ici PMO, pour développer plus d'une application.

    J'aimerais pouvoir disposer d'un class_loader dans chacune de mes applications, c.-à-d.

    • /
      • apps/
        • app1/
          • class_loader/
        • app2/
          • class_loader/
        • etc...
    • etc.


    Dans ce contexte, j'aimerais pouvoir définir le chemin d'accès du répertoire class_loader avant d'appeler PMO_MyController.php
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  3. #3
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut [Résolu dans v0.14] J'ai essayé ceci
    Voici ce que j'ai essayé. Pas certain que cela fonctionne. J'essaie encore de comprendre comment fonctionne PMO.

    Dans PMO_MyObject.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	public static function internalfactory(PMO_Table $table){
    		$classname = $table->getClassname(); 
    		if ($classname){		
             if (defined('CLASS_LOADER'))
                require_once(CLASS_LOADER . 'class_'.$classname.'.php');
             else
       			require_once(dirname(__FILE__).'/../class_loader/class_'.$classname.'.php');
    			$object = new $classname($table);
    		}else{
    			$object = new PMO_MyObject($table);	
    		}
    		return $object;
    	}
    J'ai défini CLASS_LOADER dans le fichier de configuration de mon application sous /apps/app1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    define ('DS', DIRECTORY_SEPARATOR);
    define ('CLASS_LOADER', dirname(__FILE__) . DS . 'class_loader' . DS);
    HTH
    Louis

    PS En regardant la prévisualisation de ce post, je crois que les accolades devraient être requises en tout temps. Cela rend le code plus facile à lire. Et, comme vous le dîtes dans votre blogue, ce ne seront pas ces quelques octets supplémentares qui vont ralentir nos applications.

    PPS Merci pour ce ORM qui rend le développement d'une application Web 2.0 beaucoup plus facile.
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  4. #4
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut [Résolu dans v0.14 ] Permettre un dossier PMO_MyTable par application
    Et rebonjour,

    Je propose la même demande pour le dossier PMO_MyTable que celle qu j'ai fait pour class_loader, c.-à-d. avoir un dossier par application.

    Modification que j'ai apportée à PMO_MyTable.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	public static function factory($tablename){
    		$class = self::$prefix.$tablename;
          if (defined('PMO_MYTABLE'))
             $filename = PMO_MYTABLE . $class.".php";
          else
             $filename = dirname(__FILE__).'/PMO_MyTable/'.$class.".php";
    	
    (...)
    Définition de PMO_MYTABLE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    define ('DS', DIRECTORY_SEPARATOR);
    define ('PMO_MYTABLE', dirname(__FILE__) . DS . 'PMO' . DS . 'PMO_MyTable' . DS);
    À noter que votre define dépend de votre arborescence!

    Merci,
    L
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 181
    Points : 158
    Points
    158
    Par défaut
    je regarde toutes ces modifs demain
    PhpMyObject teck leader
    http://pmo.developpez.com

    La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.

  6. #6
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut Voici mes modifs.
    Bonjour,

    Voici les fichiers tels que je les ai modifiés. Le fichier config.php est inclut dans mes programmes. J'ai ajusté un peu les chemins et les programmes pour que ça fonctionne... testé ce matin.

    La structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    webroot/
       apps/
          support/
             pmo/
                class_loader/
                PMO_MyTable/
       libs/
          pmo/
             class_loader/
             PMO_core/
                PMO_MyTable/
    Si les programmes ne trouvent pas leur classes dans les répertoires usagers, ils cherchent alors dans les répertories standards.

    À noter que je n'ai pas testé le tout à 100%. Toutefois, PMO_MyObject.php et PMO_MyTable.php trouvent mes fichiers.
    Fichiers attachés Fichiers attachés
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 181
    Points : 158
    Points
    158
    Par défaut
    Je viens d'intégrer les modifications sur le subversion. Comme j'aime pas trop les variables globales, j'ai implémenté des static qui peuvent être set de cette façon et remplacer les define:

    PMO_MyObject::setPath(lenomdurepertoire);
    PMO_MyTable::setPath(lenomdurepertoire);

    ça devrait correspondre à ton besoin

    c'est possible d'insérer des tests is_dir dans ces méthodes setPath() mais ça aura sans doute un impact non négligeable en terme de perfs, alors que la vérification de l'existence du repertoire n'a d'utilité qu'une fois au moment de l'intégration
    PhpMyObject teck leader
    http://pmo.developpez.com

    La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.

  8. #8
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut
    Merci, je vais jeter un oeil dessus demain. Là, j'ai les 2 yeux dans la graisse de binnes.... Je suis sur mon code depuis les petites heures du mat...

    Merci encore
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 181
    Points : 158
    Points
    158
    Par défaut
    Citation Envoyé par Laplix Voir le message
    Merci, je vais jeter un oeil dessus demain. Là, j'ai les 2 yeux dans la graisse de binnes.... Je suis sur mon code depuis les petites heures du mat...

    Merci encore
    pas de probs qu'est ce que tu codes si c'est pas indiscret ?
    PhpMyObject teck leader
    http://pmo.developpez.com

    La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.

  10. #10
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut
    Je viens tout juste de commencer à écrire un système de gestion du support.

    Où je travaille, nous développons des applications de gestion pour les municipalités (Paie, Taxation, Loisirs, Cour municipale, comptabilité, etc.), le secteur de la santé et la petite et moyenne entreprise et nous offrons un support à la clientèle (évidemment!).

    À l'heure actuelle, mon groupe (la gang municipale) utilise un chiffrier Excel pour savoir qui offre le support niveau 1, 2 ou 3, pour quel produit et à quelle date. Excuses-moi le québécois mais c'est toton cordonnier mal chaussé!!!

    J'ai décidé de me taper (sur mon temps perso évidemment!!) le travail d'écrire une app pour gérer tout ça. Et tant qu'à le faire, je me suis dis que ce serait plaisant d'apprendre quelque chose en passant.

    Louis
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 181
    Points : 158
    Points
    158
    Par défaut
    salut Louis

    Je ne sais pas qui est toton le cordonnier mal chaussé mais ça m'a bien fait rire

    Je suis preneur et intéressé par tes évolutions. Ca me permet de mieux comprendre les cas d'utilisations

    Ton aide sera plus que bienvenue.

    Perso je vie à côté de Paris, je travaille en tant que chef de projet pour un gros fournisseur d'accès internet français

    A mes heures perdues, je fais du dev mais pas sous influence :p

    Pas de problème pour la deadline
    PhpMyObject teck leader
    http://pmo.developpez.com

    La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.

  12. #12
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut SUGGESTION : Un vrai système de suivi
    J'aimerais suggérer que PMO utilise un vrai système de gestion de demandes d'améliorations/corrections.

    Personnellement, je préfère Trac mais il est écrit en python et il peut être difficile de l'installer si on ne contrôle pas le serveur ou son espace cgi-bin.

    Une autre possibilité, en PHP celle-ci, est Mantis.

    Je crois que PMO gagnerait à mieux gérer les demandes d'amélioration et les signalements d'erreur dès le départ.

    L'utilisation d'un forum tel que celui-ci conduit trop facilement à des discussions qui n'ont possiblement pas de rapport avec le sujet du forum ou encore à de longues discussions sur les pour et les contre d'une demande, lesquels peuvent nous faire perdre de vue les demandes elles-mêmes.

    Merci,
    Laplix
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 181
    Points : 158
    Points
    158
    Par défaut
    je vais transmettre la demande à developpez.com
    PhpMyObject teck leader
    http://pmo.developpez.com

    La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.

  14. #14
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut PMO_MySGBD:verboseQuery
    Je propose d'ajouter un paramètre afin de permettre l'affichage ou non de la query.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public function verboseQuery($query, $return = true){
       if($this->verbose)
          if ($return)
             return $query;
          else
             echo "<br>".$query."<br>";
    }
    Ceci va nous permettre d'enregistrer la requête dans un log et empêcher de briser les pages webs.
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 181
    Points : 158
    Points
    158
    Par défaut
    Citation Envoyé par Laplix Voir le message
    Je propose d'ajouter un paramètre afin de permettre l'affichage ou non de la query.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public function verboseQuery($query, $return = true){
       if($this->verbose)
          if ($return)
             return $query;
          else
             echo "<br>".$query."<br>";
    }
    Ceci va nous permettre d'enregistrer la requête dans un log et empêcher de briser les pages webs.
    Cette fonction est appelée par des fonctions de la classe qui ne gère pas les retours. Je vais faire une modif dans le sens de ta proposition, c'est une bonne idée.
    PhpMyObject teck leader
    http://pmo.developpez.com

    La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 181
    Points : 158
    Points
    158
    Par défaut
    voila ce que j'ai rajouté:

    public function verboseQuery($query){
    if($this->verbose)
    $this->setLog($query);
    }
    ensuite il suffit par exemple de faire :

    echo $SGBD->getLog();

    pour afficher la requête, qu'en penses tu ?
    PhpMyObject teck leader
    http://pmo.developpez.com

    La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.

  17. #17
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 722
    Points : 29 845
    Points
    29 845
    Par défaut
    Salut

    La taille du projet PMO ne justifie pas encore l'installation d'une telle application. Ce n'est pas impossible dans le futur, mais pour le moment nos admins sont très occupés.

    Je pense que pour le moment, PMO peut très bien fonctionner avec un système de tags dans les libellés des discussions, par exemple :
    [Bug] Titre de la discussion.
    Par ailleurs, cela se combine très bien avec le bouton

    Si la quantité le justifie, dans le futur nous pourrons créer un forum spécifique pour les rapports de bug de PMO. Je ne suis pas persuadé qu'il soit justifié d'installer une application spécifique, d'autant plus qu'ensuite il faut la tenir elle-même à jour

  18. #18
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par Yogui Voir le message
    Salut

    La taille du projet PMO ne justifie pas encore l'installation d'une telle application. Ce n'est pas impossible dans le futur, mais pour le moment nos admins sont très occupés.

    Je pense que pour le moment, PMO peut très bien fonctionner avec un système de tags dans les libellés des discussions, par exemple :

    Par ailleurs, cela se combine très bien avec le bouton

    Si la quantité le justifie, dans le futur nous pourrons créer un forum spécifique pour les rapports de bug de PMO. Je ne suis pas persuadé qu'il soit justifié d'installer une application spécifique, d'autant plus qu'ensuite il faut la tenir elle-même à jour
    Excusez-moi monsieur Yogui mais, à moins que je ne me trompe, developpez.com essaie d'attirer les développeurs de logiciel et veut concurrencer des sites comme sourceforge.net ou code.google.com, non?

    Un système de gestion de bogue/amélioration profiterait à tous les utilisateurs de developpez.com, pas uniquement à PMO.

    Alors, c'est quoi le problème? (dialecte québécois )
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  19. #19
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par code34 Voir le message
    voila ce que j'ai rajouté:

    ensuite il suffit par exemple de faire :

    echo $SGBD->getLog();

    pour afficher la requête, qu'en penses tu ?
    Je suggère d'en faire un array. Sinon nous serons obligés de récupérer la propriété log après chaque instruction.
    Avec un array, nous pouvons exécuter une série de requêtes et s'il y a problème, récupérer le log.

    getLog() devrait alors réinitialiser la propriété pour ne pas accumuler trop de données.

    D'un autre côté, si on ne récupère pas le log, il va s'accumuler. Pour contrôler ceci, verboseQuery
    devrait utiliser un second paramètre, soit $retain = false

    et utiliser ce genre de code :

    Code : 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
    
       protected $log = array();
       protected $retain_log = false;
    
       public function setLog($log){
          if ($this->retain_log)
             $this->log[] = $log;
          else
             $this->log[0] = $log;   
       }
    
       public function getLog(){
          if (isset($this->log))
             $log = $this->log;
    
          if (!$this->retain_log)
             $this->log = array();
    
          if(isset($log))
             return $log;
          else
             return FALSE;
       }
    
       public function verboseQuery($query, $retain=false){
          $this->retain_log = $retain;
          if($this->verbose)
             $this->setLog($query);
       }
    De cette façon, nous avons toute la souplesse voulue. À la charge du développeur de ne pas accumuler trop de données en mémoire.

    PS En passant, nous nous tapons une sacré tempête de neige par chez nous!!! Dans les 35 cm! Le record à Montréal était 383 cm en 1971. Avant aujourd'hui, nous en étions rendu à 315 cm. Avec les 35 qui nous tombent sur la tête, on s'en rapproche pas à peu près. Et on est juste le 8 mars!!! J'ai écouté les nouvelles de TV5 ce matin. Vous vous tapez dans les 10 centigrades. hihihi Dites donc, savez-vous ce que ça veut dire le mot hiver???
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  20. #20
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 722
    Points : 29 845
    Points
    29 845
    Par défaut
    Houlà non, nous ne concurrençons pas sourceforge ou googlecode... Nous restons dans l'hébergement gratuit d'articles ou de projets, et à notre mesure un tel outil ressemble à un bazooka pour tuer une mouche

Discussions similaires

  1. Demande de conseil évolution de carrière.
    Par Dwyls dans le forum Emploi
    Réponses: 0
    Dernier message: 27/11/2009, 23h46
  2. Demande l'aide d'experts pour amélioration de mes macro.
    Par silennnce dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 26/08/2008, 07h43
  3. Réponses: 3
    Dernier message: 27/06/2007, 16h31
  4. Comment amèliorer ma demande d'emploi ?
    Par unix27 dans le forum Emploi
    Réponses: 19
    Dernier message: 29/03/2006, 13h55
  5. Demande pour améliorer XMLGram Explorer
    Par mchicoix dans le forum XMLRAD
    Réponses: 4
    Dernier message: 29/03/2005, 09h26

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