我正在使用PHPStorm IDE。我有一个方法可以从我的 mysql db 中获取几列并返回一个包含这些值的对象。是否有可能编写 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
*/
但不幸的是,这不起作用。是否真的必须为每个变量编写一个getter和setter,或者可以通过任何PHPDoc方式完成?
任何帮助将不胜感激。
谢谢
基本规则是:
- 只有一个
@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';
...
我不确定 PHPStorm,但 Netbeans 接受管道符号:
/**
*
* @return A|B
*/