PHP:键入暗示一个方法将几个对象变量声明为返回
我正在使用PHPStorm IDE。我有一个方法,它从mysql数据库中获取一些列,并返回一个包含这些值的对象。有没有可能写一个PHPDoc注释,它是暗示特定值的类型?所以如果我打字 self::getCommissionFromCacheOrDb($provider\u id,$type,$platform)-> IDE将向我显示几个变量,我已经在方法上方的PHPDoc注释中声明了这些变量PHP:键入暗示一个方法将几个对象变量声明为返回,php,phpstorm,type-hinting,Php,Phpstorm,Type Hinting,我正在使用PHPStorm IDE。我有一个方法,它从mysql数据库中获取一些列,并返回一个包含这些值的对象。有没有可能写一个PHPDoc注释,它是暗示特定值的类型?所以如果我打字 self::getCommissionFromCacheOrDb($provider\u id,$type,$platform)-> IDE将向我显示几个变量,我已经在方法上方的PHPDoc注释中声明了这些变量 public static getValuesFromDb($provider_id){
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;
}
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方式来完成
任何帮助都将不胜感激
谢谢我不确定PHPStorm,但Netbeans接受管道标志:
/**
*
* @return A|B
*/
基本规则是:
- 只有一个
语句@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';
...
php doc comment->/**@var ClassName$object*/我已经尝试过了,但之后没有类型提示。这里有f.e.类型提示,如果我写
@return array | null | \yii\db\ActiveRecord
,那么返回可以是array或null,并显示名称空间类的属性。但是我想要一个带有几个属性的简单对象。null
不是一个类型,而是一个值(或者说它缺少属性)。我想您应该创建一个false
未使用的类,并将其用于PHPDoc中的返回值。我同意这种类型。但我的问题是关于字体暗示。你有什么线索吗?我的想法和阿尔瓦罗的一样。类不需要在项目本身中。好的,这样它就可以工作了。非常感谢。但是感觉有点脏。可能最好只为这几个属性创建一个单独的模型(MVC模式)。你觉得呢?我想这取决于你的整体设计。自动魔术的东西是可怕的,但它不能解决所有的需要(否则,它会是愚蠢的手动操作)。我个人更喜欢代码智能而不是少打字,因为我的打字技能比我的记忆力好。