Ho un'eredità multipla come questa: Can I extend a class using more than 1 class in PHP? (non discutiamo di questo approccio in sé per favore) e voglio che il mio IDE conosca i metodi e le proprietà della classe ereditata. C'è un modo per farlo con PhpDoc?Documentare l'ereditarietà multipla di PHP con PhpDoc
risposta
Sembra che al momento non ci sia modo di farlo facilmente. Ho creato un ticket sul tracker dei problemi di PhpStorm. Forse aggiungeranno il supporto per questa funzione.
E infine l'hanno fatto :) –
Questo funziona in PHPStorm semplicemente usando lo speciale parametro phpDoc '@ mixin' in questo modo:'/* @mixin \ Another \ Class \ Or \ Namespace */'nella parte superiore della classe. – h2ooooooo
L'annotazione @method
deve essere utilizzata per le classi che implementano __call
. In una nota correlata, per __get
, __set
e __isset
, è necessario utilizzare le annotazioni @property
. L'unica cosa che non so per certo è se Eclipse PDT supporti queste annotazioni. Conosco NetBeans.
Grazie, so che posso usarli ma è difficile ridichiarare tutti i metodi e le proprietà "ereditati" uno per uno. La mia speranza è che ci sia una specie di PhpDoc che ho perso che può delegare metodi e proprietà di classe a un'altra classe. btw., PhpStorm supporta sia @property che @method. –
non c'è il supporto per più eredità a livello di classe. Ciò significa che non puoi estendere più di una lezione alla volta. Tuttavia l'ereditarietà multipla è supportata nelle interfacce. Un'interfaccia può estendere un numero arbitrario di altre interfacce alla volta.
La tua domanda è più correlata a PhpDoc o più correlata a "come viene visualizzato il completamento automatico appropriato all'interno dell'editor"? – Savageman
Non mi piace chiamare questo trucco più ereditarietà, ma piuttosto delegazione. –
Savageman, si tratta di PhpDoc ma è anche utile sapere se ci sono trucchi specifici IDE. –