2010-04-22 22 views
6

Tengo herencia múltiple como esta: Can I extend a class using more than 1 class in PHP? (no discutamos este enfoque por sí mismo, por favor) y quiero que mi IDE sepa sobre los métodos y las propiedades heredadas de la clase. ¿Hay alguna manera de hacerlo con PhpDoc?Documentar la herencia múltiple de PHP con PhpDoc

+0

¿Su pregunta está más relacionada con PhpDoc o más relacionada con "cómo se muestra la autocompletación apropiada dentro del editor"? – Savageman

+1

No me gusta llamar herencia a este truco, sino delegación. –

+0

Savageman, se trata de PhpDoc, pero también es bueno saber si hay trucos específicos de IDE. –

Respuesta

11

Parece que actualmente no hay forma de hacerlo fácilmente. Creé un boleto en el rastreador de problemas PhpStorm. Quizás agregarán soporte para esta característica.

http://youtrack.jetbrains.net/issue/WI-1730

+1

Y finalmente lo hicieron :) –

+3

Esto funciona en PHPStorm simplemente usando el parámetro phpDoc param '@ mixin' especial así:'/* @mixin \ Another \ Class \ Or \ Namespace */'en la parte superior de la clase. – h2ooooooo

2

La anotación @method se debe utilizar para las clases que implementan __call. En una nota relacionada, para __get, __set y __isset, se deben usar las anotaciones @property. Lo único que no sé con certeza es si Eclipse PDT admite estas anotaciones. Sé que NetBeans sí.

+0

Gracias, sé que puedo usar estos pero es difícil redeclarar todos los métodos y propiedades "heredados" uno por uno. Mi esperanza es que exista algún tipo de PhpDoc que haya olvidado que pueda delegar métodos de clase y propiedades a otra clase. Por cierto, PhpStorm admite @property y @method. –

-3

no hay soporte para múltiples herencias a nivel de clase. Esto significa que no puede extender más de una clase a la vez. Sin embargo, la herencia múltiple es compatible con las interfaces. Una interfaz puede extender un número arbitrario de otras interfaces a la vez.