Pour être clair, en utilisant $ cette ne devrait jamais indiquer un objet du courant classe, non?
PhpDocumentor ne reconnaît pas actuellement (v1.4.3) $ ce en tant que mot-clé spécifique qui doit correspondre à un type de données de la classe elle-même.
Seuls les types de données connus par PHP et les classes déjà analysées par PhpDocumentor sont les valeurs de type de données correctes à utiliser avec la balise @return. PhpDocumtentor propose une option permettant de documenter les méthodes courantes qui "retournent $ this". [1]
Dans le cas de la balise @var, je ne vois pas comment une variable de classe pourrait contenir sa propre instance de classe. En tant que tel, je ne peux pas suivre ce que "@var $ this" devrait dire.
Si, cependant, votre intention avec $ ce est pas pour les méthodes couramment que « return $ ce », et était tout simplement d'être un peu raccourci vers PhpDocumentor et/ou votre IDE deviner par magie ce que vous DataTypes pourrait signifie en utilisant $ ce, je devrais deviner il n'y a aucun moyen de le faire. La suggestion la plus proche que je pourrais faire serait d'utiliser le nom d'une classe parent qui est un parent commun à toutes les différentes classes enfants que ce var/return particulier pourrait être à l'exécution, puis utiliser la partie description de la balise pour avoir en ligne {@link} balises répertoriant les classes enfants possibles. Exemple: J'ai une classe abstraite parent avec les enfants Child1, Child2 et Child3 que chaque peut avoir dans ma classe Foo d'exécution. Donc, Foo :: _ var pourrait être l'un de ces types de classe enfant à l'exécution, mais comment est-ce que je documenterais cela?
/**
* @var Parent this could be any child of {@link Parent}, {@link Child1}, {@link Child2}, or {@link Child3}...
*/
protected $_var;
Pour en revenir à la question « retourner ce $ », je voudrais documenter les choses d'une manière similaire:
/**
* a fluent method (i.e. it returns this class's instance object)
* @return Parent this could be any child of {@link Parent}, {@link Child1}, {@link Child2}, or {@link Child3}...
*/
public function foo() {
return $this;
}
Documenter cette façon au moins permet à votre classe doc d'avoir des liens avec le particulier Des classes. Ce qu'il ne parvient pas à faire, c'est mettre en évidence le couramment 'ness. Cependant, si votre IDE est capable de reconnaître les noms de classe, alors il sera peut-être capable de faire le lien logique nécessaire avec ces autres classes.Je pense qu'Eclipse est capable de le faire au moins avec une aide contextuelle, si vous passez la souris sur le nom de la classe dans la description de la balise. Je pense que pas pense qu'Eclipse peut utiliser ceci pour rendre les diverses méthodes des classes enfants disponibles dans le code. Il connaîtrait les méthodes Parent pour la complétion de code, car le type de données que je liste explicitement est Parent, mais c'est aussi loin que l'EDI peut aller.
[1] - http://pear.php.net/bugs/bug.php?id=16223
Merci, sonne bien, mais ne fonctionne pas dans Aptana - il reconnaît $ ceci comme un mot-clé et ne le liera pas au type var défini – benz001
Fonctionne très bien sur PhpStorm, mais pas sur Eclipse Indigo et versions inférieures ... N'a pas testé sur Juno, cela dit. –