PHPDoc: Typehint in verschachtelten Arrays (mit z. B. 2 Dimensionen)

8

Gibt es eine korrekte Methode, um Werte / Objekte in Arrays zu dokumentieren, die sich in einer anderen Dimension befinden?

Normalerweise wird ein Array wie folgt behandelt:

%Vor%

Aber ich brauche so etwas:

%Vor%

Dies funktioniert offensichtlich nicht, also was ist die korrekte PHPDoc-Schreibweise?

    
DerDu 12.12.2013, 12:04
quelle

2 Antworten

6

Verstehen Sie zuerst, dass diese Verwendung von @var keine Standard-phpDocumentor-Spezifikation ist. Es ist eine von mehreren verschiedenen Möglichkeiten, die verschiedene IDEs versucht haben, eine "automatische Vervollständigung für lokale Variablen" zu ermöglichen. Ich weiß, dass Eclipse das Format /* @var $varName \ClassName */ verwendet. Behalte das im Hinterkopf, wenn andere Antworten / Vorschläge eintreffen.

Der einzige Weg, den ich sehen kann, um diesen IDE-Vervollständigungs-Hack mit Ihrem zweidimensionalen Array zu nutzen, ist, ein anderes @var später zu verwenden, wenn Sie die erste Dimension lesen lesen, obwohl dies erforderlich ist gehe selbst in eine Variable:

%Vor%

$inner[0]-> (erwarten Sie automatische Vervollständigung von ClassName-Methoden hier)

Wie nützlich das für die automatische Vervollständigung sein kann, hängt wiederum davon ab, wie Ihre IDE es erstellt hat. Einige IDEs kennen die ClassName [] -Syntax und leiten daraus ab, dass ein aus $ inner gezogenes Element ein ClassName ist und daher seine Methoden anzeigen kann. Allerdings kann ich nicht sagen, dass ich any IDE das schon gesehen habe. Es war höchstens eine Strecke, IDEs zu sehen, einfach den @var-Hack in seiner grundlegendsten Form ( /* @var $var ClassName */ ) zur Verfügung zu haben.

TL; DR: Ihre Laufleistung kann variieren, wenn Sie nur versuchen, die Hälfte von dem zu bekommen, wonach Sie suchen: -)

    
ashnazg 12.12.2013, 14:58
quelle
17

PhpStorm erlaubt die Eingabe geschachtelter Arrays mit doppelten Klammern [] []:

%Vor%     
lisachenko 21.10.2014 06:06
quelle