Il est désormais possible de faire "Find All References" sur les propriétés, depuis n'importe quelle référence, pour avoir la liste exhaustive des références directes vers une propriété. Une propriété référencée indirectement (alias d'alias par exemple) ne sera pas listée, puisque ce n'est pas la même propriété. Les références de propriétés sur un exclude sont bien listées, malgré le fait que la propriété n'existe pas sur la classe cible, et les include implicites sont "redirigés" vers la référence de la classe de l'alias.
Certaines localisations peuvent donc maintenant référencer deux objets en même temps :
La définition d'une association est à la fois une référence vers la classe associée et une référence vers la propriété déclarée
La définition d'un alias est à la fois une référence vers la propriété aliasée et une référence vers la propriété déclarée
Dans ce cas, les références des deux objets seront listées et mélangées dans le résultat de la requête.
Le renommage des propriétés a aussi été partiellement implémenté. A l'inverse du listing des références, le renommage agit également sur les références indirectes : renommer un alias d'alias va renommer la propriété initiale, et inversement. En revanche, le renommage échouera si toutes les références n'ont pas le même nom (à cause d'une référence qui utilise un préfixe ou suffixe d'alias par exemple).
L'issue #10 reste donc ouverte pour lever cette limitation, au moins dans le sens "parent" => "enfant" où il est facile de recalculer le nom de la propriété après renommage (dans l'autre sens il faudrait vérifier que le nom choisi corresponde aux différents préfixes et suffixes, ce qui semble loin d'être immédiat, d'autant plus que la fonctionnalité n'a à priori pas beaucoup de valeur). On traitera aussi par la même occasion le renommage de classe qui ne renomme pas les alias vers une association, puisque c'est un peu le même problème.
Fix #9 Traite partiellement #10
Il est désormais possible de faire "Find All References" sur les propriétés, depuis n'importe quelle référence, pour avoir la liste exhaustive des références directes vers une propriété. Une propriété référencée indirectement (alias d'alias par exemple) ne sera pas listée, puisque ce n'est pas la même propriété. Les références de propriétés sur un
exclude
sont bien listées, malgré le fait que la propriété n'existe pas sur la classe cible, et lesinclude
implicites sont "redirigés" vers la référence de la classe de l'alias.Certaines localisations peuvent donc maintenant référencer deux objets en même temps :
Dans ce cas, les références des deux objets seront listées et mélangées dans le résultat de la requête.
Le renommage des propriétés a aussi été partiellement implémenté. A l'inverse du listing des références, le renommage agit également sur les références indirectes : renommer un alias d'alias va renommer la propriété initiale, et inversement. En revanche, le renommage échouera si toutes les références n'ont pas le même nom (à cause d'une référence qui utilise un préfixe ou suffixe d'alias par exemple).
L'issue #10 reste donc ouverte pour lever cette limitation, au moins dans le sens "parent" => "enfant" où il est facile de recalculer le nom de la propriété après renommage (dans l'autre sens il faudrait vérifier que le nom choisi corresponde aux différents préfixes et suffixes, ce qui semble loin d'être immédiat, d'autant plus que la fonctionnalité n'a à priori pas beaucoup de valeur). On traitera aussi par la même occasion le renommage de classe qui ne renomme pas les alias vers une association, puisque c'est un peu le même problème.