Я работаю с PHPStorm IDE. У меня есть метод, который извлекает несколько столбцов из базы данных mysql и возвращает объект, содержащий эти значения. Есть ли возможность написать комментарий PHPDoc, тип которого намекает на конкретные значения? Так что, если я наберу
Self::getCommissionFromCacheOrDb($provider_id, $type, $platform)->
IDE покажет мне несколько переменных, которые я объявил в комментарии PHPDoc над методом.
Например метод.
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?
Любая помощь была бы признательна.
Благодарность
2 ответа
Основные правила:
- Только один оператор
@return
- Нет имени переменной
- Тип данных как есть (без использования префикса @)
Сказал, что вы мало что можете сделать, если ваш объект создан ad-hoc. Возможно, вам потребуется создать пустой класс только для завершения кода. например.:
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';
...
Я не уверен насчет PHPStorm, но Netbeans принимает знак трубы:
/**
*
* @return A|B
*/
@return array|null|\yii\db\ActiveRecord
, тогда возвращаемым значением может быть либо массив, либо нуль, и отображаются свойства класса с пространством имен. Но мне нужен простой объект с несколькими атрибутами.
null
- это не тип, а значение (точнее его отсутствие). Я думаю, вы хотите создать неиспользуемый класс fake
и использовать его для возвращаемого значения в PHPDoc.
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.