PHP docBlock @return className - PullRequest
       21

PHP docBlock @return className

6 голосов
/ 17 марта 2012

Как мне создать PHP DocBlock с указанием @return, который сообщает о возвращении класса. На данный момент это довольно просто сделать

/**
* This returns an object of the "User" class
* @return User
*/
public function getUser() { return $this->user; }

Я использую это для получения intellisense через мою IDE для этих возвращаемых значений. (в моем случае Netbeans)

Однако у меня есть класс, который возвращает класс на основе имени переменной. (например:)

/**
* This returns an object of the $param
* @param String $className
* @return ???
*/
public function getSomeObject($className) { return new $className(); }

и я пытаюсь создать intellisense для этого, но я не уверен, возможно ли это на самом деле.

Например, когда я звоню

$someClass = new MyClass();
$var = $someClass->getSomeObject('Address');

Я бы хотел, чтобы моя IDE показала мне intellisense для переменной $ var (которая будет содержать объект адреса)

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Если вы не можете перечислить все потенциальные типы возврата,

@return User|Address|Sandwich|Coiture

, и в среде IDE можно разрешить автозаполнение до агрегат все методы / свойства из всего этого списка классов , тогда я не считаю это возможным.

2 голосов
/ 17 марта 2012

Имеет смысл упомянуть, что метод возвращает объект как таковой:

/**
* [...]
* @return object
*/

В итоге с некоторыми деталями как таковыми:

* @return object Object of class $className

См. документы для @ return .

...