PHPDocumentor необязательные аргументы - PullRequest
4 голосов
/ 23 марта 2012

Я пытаюсь написать блок 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 являются обязательными аргументами, в то время как все экземпляры $ праздничные дни являются необязательными ... их может не быть,одна или несколько долларовых дат праздников.Приведенное выше определение PHPDocumentor дает мне

Параметр $ Holiday, ... не может быть найден в daysBetween ()

Я полагаю, что я могу обойти это, изменивопределение метода на

public function daysBetween($startDate,$endDate,$holidays=NULL) {

, но это выглядит очень глупо, и я не верю, что мне нужно изменить определение функции, чтобы документировать его.У кого-нибудь есть другие предложения?

PS Я использую PHPDocumentor2

1 Ответ

4 голосов
/ 02 апреля 2012

Ваш текущий синтаксис

* @param   DateTime    $holidays,...  Optional series of dates that will be excluded

выглядит правильно в соответствии с руководством phpDocumentor для тега param [1].На этой странице показано, что синтаксиса «$ holidays, ...» должно быть достаточно для того, чтобы phpDocumentor распознал необязательный параметр, который не отображается непосредственно в сигнатуре метода кода.не найден в daysBetween () "ответу, вероятно, нужна новая проблема, открытая на странице github [2].

[1] - http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.param.pkg.html

[2] - https://github.com/phpDocumentor/phpDocumentor2/issues/424

...