Czy istnieje sposób, aby zasugerować WebIDE, że zmienna ma jakiś typ? Muszę iterować tablicę obiektów i nie ma dostępnego autouzupełniania. To pomaga w ZendStudio:
/* @var ClassName $object */
Wiem, że w JetBrains jest funkcja deklarowania tablicy obiektów:
/**
* @return ClassName[]
*/
Ale działa to tylko z typem zwracanym funkcji.
php
phpstorm
type-hinting
web-ide
kolypto
źródło
źródło
Odpowiedzi:
/* @var ClassName $object */
jest nieprawidłowym komentarzem PHPDOC i nie jest analizowany w bieżącej wersji środowiska Web IDE. Użyj podwójnych gwiazdek, aby to zadziałało:/** @var ClassName $object */
Ponadto, można opisywać
$array
wforeach($array as $var)
z/** @var ClassName[] $array */
i$var
wpisać zostanie wyprowadzona automatycznie.źródło
Jak już wspomniano, PhpStorm będzie używał zwykłych bloków phpdoc:
/** @var ClassName $object */
Jednak od wersji 2.1 obsługuje również adnotacje Netbeans / Eclipse / Zend @var :
/* @var $object ClassName */
Zwróć uwagę, że komentarz zaczyna się od
/*
zamiast/**
(dlatego nie pojawi się, jeśli wygenerujesz rzeczywistą dokumentację za pomocą phpdoc). Ponadto argumenty są zamieniane, chociaż PhpStorm akceptuje dowolne zamówienie:/* @var ClassName $object */
Wreszcie, mogą poprzedzać prawie każdą dowolną linię kodu (technicznie rzecz biorąc, bloki phpdoc są ograniczone do określonych elementów).
Edycja: od 2019 r. Adnotacje Netbeans / Eclipse / Zend @var wydają się być w większości porzucone. NetBeans 11 już ich nie obsługuje i generalnie nie są obsługiwane przez inne IDE. Proponuję użyć innej składni.
źródło