phpstorm — PHP: введите подсказку для одного метода, чтобы объявить несколько переменных объекта в качестве возвращаемых

Я работаю с IDPS PHPStorm. У меня есть метод, который выбирает несколько столбцов из моей базы данных MySQL и возвращает объект, который содержит эти значения. Есть ли возможность написать комментарий PHPDoc, тип которого указывает на конкретные значения? Так что если я наберу

self :: getCommissionFromCacheOrDb ($ provider_id, $ type, $ platform) ->

Среда IDE покажет мне несколько переменных, которые я объявил в комментарии PHPDoc над методом.

F.E. метод.

public static getValuesFromDb($provider_id){
$data = self::find()->where(['provider_id' => $provider_id,
'revision' => '0000-00-00 00:00:00',
'platform' => $platform,
'type' => $type])
->select(['commission',
'direct_commission',
'super_commission',
'super_commission_maturity',
'valid_from',
'valid_to'])
->one();
return $data;
}

Я мог бы представить себе некоторый блок PHPDoc, как

/**
* @return $direct_commission
* @return @super_commission
* @return @super_commission
* @return @valid_from
* @return @valid_to
*/

но, к сожалению, это не работает. Действительно ли необходимо писать геттер и сеттер для каждой переменной или это можно сделать любым способом PHPDoc?

Любая помощь будет оценена.

Спасибо

1

Решение

Основные правила:

  • Только один @return заявление
  • Нет имени переменной
  • Тип данных как есть (без префикса @)

Сказал, что вы ничего не можете сделать, если ваш объект создан специально. Возможно, вам понадобится создать пустой класс только для завершения кода. например.:

class Comission{
public $commission;
public $direct_commission;
public $super_commission;
public $super_commission_maturity;
public $valid_from;
public $valid_to;
}

… а также:

/**
* @return Comission
*/

Сам PhpStorm довольно часто использует этот трюк для документирования встроенных классов и функций:

/**
* Representation of date and time.
* @link http://php.net/manual/en/class.datetime.php
*/
class DateTime implements DateTimeInterface {
const ATOM = 'Y-m-d\TH:i:sP';
const COOKIE = 'l, d-M-y H:i:s T';
...
2

Другие решения

Я не уверен насчет PHPStorm, но Netbeans принимает знак канала:

/**
*
* @return A|B
*/
0

По вопросам рекламы [email protected]