假设我将其用于我的API类
class EventInfo {
/// @var int $start The Start time
public $start
/// @var string $url The URL for the event {@required false}
public $url = null;
}
现在我想对我的POST和PATCH方法使用EventInfo
。当我正在进行POST时,$start
是要设置的必需属性。 $url
将作为可选参数出现。
但是,当我进行PATCH操作时,不再需要$start
。我可能会通过一个新的开始时间,但我可能不会。
如何指定?
答案 0 :(得分:0)
首先,使用 DocBlock 语法
class EventInfo {
/**
* @var int $start The Start time
*/
public $start;
/**
* @var string $url The URL for the event {@required false}
*/
public $url = null;
}
这将设置默认的必需属性和可选属性。然后,您可以使用{@required }
注释在api方法级别控制所需的属性。请参阅下面的示例
class Home
{
public function index()
{
return array(
'success' => array(
'code' => 200,
'message' => 'Restler is up and running!',
),
);
}
public function patch(EventInfo $info)
{
return func_get_args();
}
/**
* @param EventInfo $info {@required start,url}
* @return array
*/
public function post(EventInfo $info)
{
return func_get_args();
}
}
您也可以添加{@properties start}
注释,以限制API方法所需的属性。