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

Zend Studio PHP Discussion :

Autocomplétion et classes imbriquées


Sujet :

Zend Studio PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Par défaut Autocomplétion et classes imbriquées
    Bonjour,

    Je travaille sous Zend Studio et je bloque sur une fonctionnalité qui pourrait rendre le développement plus pratique.

    Comme quelques lignes de code sont plus simples à comprendre qu'une longue explication, voici le 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
     
    <?
    class classe_principale
    {
        var $truc1 = "";
        var $truc2 = "";
     
        function fonction1( $param1, $param2 )
        {
            return $param1 + $param2;
        }
    }
     
    class classe_secondaire
    {
        var $truc3 = "";
        var $truc4 = "";
     
        function fonction2( $param1, $param2 )
        {
            return $param1 + $param2;
        }
    }
     
    $classe_principale = new classe_principale;
     
    $classe_principale->classe_secondaire = new classe_secondaire;
    J'aimerai que ZendStudio reconnaisse que les deux classes sont emboîtées et active l'autocomplétion sur la classe secondaire.

    Par exemple, si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $classe_principale->fonction1( // L'autocomplétion est activée et affiche les paramètres
    Mais si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $classe_principale->classe_secondaire->fonction2( // Il n'affiche pas l'autocomplétion
    Je ne sais pas pourquoi quelques fois il arrive à autocompléter certaines classes imbriquées mais la plus part du temps, ca ne fonctionne pas.

    Que me conseillez vous?

    Merci d'avance pour vos conseils.

    A+

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Par défaut
    Il faut documenter le code : @return.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Par défaut
    Merci pour ton aide.

    Tu pourrais être plus précis s'il te plaît?

    J'ai fait des recherches sur ce que tu me proposes, je trouve PHPDocumentor. Il me semble que Zend Studio se base sur la syntaxe de celui ci pour fournir l'auto complétion mais je ne sais vraiment pas comment m'en servir.

    Merci d'avance pour tes conseils.

    A+

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Par défaut
    Désolé de ma réponse tardive, je reviens de la ZendConf

    Voici un exmeple de code documentée (en utilisant click droit ajouter une description dans l'inspecteur d'objet de Zend Studio) qui montre la complétio qui marche.

    J'ai rajouté var $classe_secondaire comme propriété (non anonyme) dans classe_principale

    <?php
    /**
    * Enter description here...
    *
    */
    class classe_principale
    {
    /**
    * Enter description here...
    *
    * @var string
    */
    var $truc1 = "";
    /**
    * Enter description here...
    *
    * @var string
    */
    var $truc2 = "";
    /**
    * Enter description here...
    *
    * @var classe_secondaire
    */
    var $classe_secondaire;

    /**
    * Enter description here...
    *
    * @param unknown_type $param1
    * @param unknown_type $param2
    * @return unknown
    */
    function fonction1( $param1, $param2 )
    {
    return $param1 + $param2;
    }


    }

    /**
    * Enter description here...
    *
    */
    class classe_secondaire
    {
    /**
    * Enter description here...
    *
    * @var string
    */
    var $truc3 = "";
    /**
    * Enter description here...
    *
    * @var string
    */
    var $truc4 = "";

    /**
    * Enter description here...
    *
    * @param unknown_type $param1
    * @param unknown_type $param2
    * @return unknown
    */
    function fonction2( $param1, $param2 )
    {
    return $param1 + $param2;
    }
    }

    $classe_principale = new classe_principale;

    $classe_principale->classe_secondaire = new classe_secondaire;
    si tu fais :
    $classe_principale->classe_secondaire->
    puis CTRL+ESPACE tu verras la complétion.

    Il faut documenter les propriétés et les méthodes pour avoir la complétion

    Voilà j'espère que cela est plus clair comme cela.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Par défaut
    Merci pour ta réponse !!!

    Ca fonctionne, après quelques hésitations

    Je ne comprenais pas pourquoi (en utilisant ta méthode), les classes imbriquées n'étaient accessibles que dans le fichier qui contient la classe principale.

    La solution était toute simple, j'avais une copie dans le répertoire contenant une ancienne version de la classe principale. Le parseur devait se mélanger les pinceaux.

    En tout cas, merci, ca fonctionne. C'est plus pratique comme ca.

    Tant que j'y suis, je voudrais approfondir cela.

    Je ne sais pas à l'avance qu'elles classes seront imbriquées dans la classe principale.
    Y a t'il un moyen de faire fonctionner l'autocomplétion pendant l'instanciation de la classe?

    Merci encore pour ton aide.

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

Discussions similaires

  1. [C#]Remonter des événements dans des classes imbriquées
    Par Kcirtap dans le forum Windows Forms
    Réponses: 9
    Dernier message: 14/12/2013, 12h43
  2. Classe imbriquée et son constructeur
    Par toninlg dans le forum C++
    Réponses: 7
    Dernier message: 30/09/2006, 06h21
  3. Classe imbriquée
    Par dj.motte dans le forum C++
    Réponses: 10
    Dernier message: 13/04/2006, 07h34
  4. classes imbriquées
    Par smedini dans le forum C++
    Réponses: 10
    Dernier message: 10/12/2005, 13h16
  5. Intérêt des classes imbriquées ?
    Par elitost dans le forum Langage
    Réponses: 5
    Dernier message: 21/10/2005, 09h30

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