我正在尝试为以下内容编写phpdocumentor块:
/**
* daysBetween
*
* Returns the number of whole working days between start_date and end_date. Working
* days exclude weekends and any dates identified in holidays.
* Use NETWORKDAYS to calculate employee benefits that accrue based on the number of
* days worked during a specific term.
*
* @param DateTime $startDate Start date
* @param DateTime $endDate End date
* @param DateTime $holidays,... Optional series of dates that will be excluded
* @return integer Interval between the dates
*/
public function daysBetween($startDate,$endDate) {
// Shift the mandatory start and end date that are referenced
// in the function definition, to get any optional days
$holidays = func_get_args();
array_shift($holidays);
array_shift($holidays);
$ startDate和$ endDate是必需参数,而$ holidays的所有实例都是可选的......可能没有定义任何一个或多个$ holiday日期。上面的PHPDocumentor定义给了我
在daysBetween()
中找不到参数$ holidays,...
我相信我可以通过将方法定义修改为
来解决这个问题public function daysBetween($startDate,$endDate,$holidays=NULL) {
但这感觉非常糟糕,我不相信我必须更改我的功能定义才能记录它。有人有任何其他建议吗?
P.S。我正在使用PHPDocumentor2
答案 0 :(得分:4)
您当前的
语法* @param DateTime $holidays,... Optional series of dates that will be excluded
根据param标签[1]的phpDocumentor手册,看起来很合适。这个页面显示“$ holidays,...”语法应该足以让phpDocumentor识别一个不直接出现在代码方法签名中的可选参数。
这个“参数$ holidays,...在daysBetween()中找不到”,响应可能需要在github页面打开一个新问题[2]。
[1] - http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.param.pkg.html
[2] - https://github.com/phpDocumentor/phpDocumentor2/issues/424