J'ai plusieurs héritage comme celui-ci: Puis-je prolonger une classe en utilisant plus d'une classe dans PHP? (ne discutons pas de cette approche elle-même s'il vous plaît) et que je souhaite que mon IDE connaisse de savoir sur des méthodes et des propriétés de classe héritées. Y a-t-il un moyen de le faire avec phpdoc? P>
3 Réponses :
the @method code> < / a> L'anotation doit être utilisée pour la mise en œuvre de classes
__ appel code>. Sur une note associée, pour
__ obtenir code>,
__ définir code> et
__ émetteur code>, le
@property code>
annotations doit être utilisé. La seule chose que je ne sais pas, c'est si Eclipse PDT prend en charge ces annotations. Je sais que Netbeans fait. P>
Merci, je sais que je peux les utiliser, mais il est difficile de redéclairez toutes les méthodes et les propriétés héritées d'une par une. Mon espoir est qu'il y a une sorte de phpdoc que j'ai manqué qui puisse déléguer des méthodes et des propriétés de classe à une autre classe. BTW., Phpstorm soutient à la fois @property et @Method.
Il semble qu'il n'y ait aucun moyen de le faire facilement. J'ai créé un ticket sur Phpstorm Proticive Tracker. Peut-être qu'ils vont ajouter une assistance à cette fonctionnalité. P>
Et finalement ils l'ont fait :)
Cela fonctionne dans PHPSTorm Tout simplement en utilisant le code PHPDoc Param @MIXIN CODE> Comme:
/ * @MIXIN \ Un autre \ Classe \ ou \ NAMESpace * / code> en haut de la classe .
Il n'y a pas de support pour plusieurs héritages au niveau de la classe. Cela signifie que vous ne pouvez pas étendre plus d'une classe à la fois. Cependant, plusieurs héritages sont pris en charge dans des interfaces. Une interface peut prolonger un nombre arbitraire d'autres interfaces à la fois. p>
Votre question est-elle plus liée à phpdoc ou plus lié à «Comment affiche l'auto-achèvement approprié à l'intérieur de l'éditeur»?
Je n'aime pas appeler ce truc plusieurs héritage, mais plutôt la délégation.
Savagiste, il s'agit de phpdoc mais il est également bon de savoir s'il ya des astuces spécifiques à l'IDE.