PHP:为一个方法键入提示,将一些对象变量声明为return

时间:2014-12-01 17:22:46

标签: php phpstorm type-hinting

我正在使用PHPStorm IDE。我有一个方法从我的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
 */

但不幸的是,这不起作用。是否必须为每个变量编写一个getter和setter,或者这可以通过任何PHPDoc方式完成?

任何帮助将不胜感激。

由于

2 个答案:

答案 0 :(得分:2)

基本规则是:

  • 只有一个@return声明
  • 无变量名称
  • 数据类型原样(不使用@前缀)

说,如果您的对象是临时创建的,那么您无能为力。您可能需要为代码完成创建一个空类。 e.g:

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';
...

答案 1 :(得分:0)

我不确定PHPStorm,但Netbeans接受管道标志:

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