Błąd „Variable number of arguments is not supported for services”

W programowaniu dość istotną kwestią jest komentowanie kodu, mam na tym punkcie lekkiego fioła.;) Tworząc funkcję w serwisie udostępniającym dane jak zawsze przystąpiłem do ob-komentowania parametrów i opisania samego działania funkcji.

/**
 * Test function
 *
 * @param string $name
 * @param string $surname
 * @return array
 */
 public function testFunction($name, $surname)
 {
      return $name.' '.$surname;
 }

Po całym rytuale komentowania doszedłem do wniosku, że nie będzie mi potrzebny jeden z parametrów. Radośnie usunąłem go, po czym przystąpiłem do sprawdzenia działania funkcji w ZAmfBrowser otrzymałem błąd o sygnaturze:

PHP Fatal error: Uncaught exception ‘Zend_Server_Reflection_Exception’ with message ‘Variable number of arguments is not supported for services (except optional parameters). Number of function arguments must correspond to actual number of arguments described in a docblock.’

Dość długo zastanawiałem się, co jest nie tak, a to, dlatego, że w pośpiechu zwróciłem uwagę tylko na pierwsze zdanie – drugie z kolei mówi mi o wiele więcej.

Ilość argumentów funkcji musi odpowiadać ilości argumentów opisanych
w docblock-u.

Jednak na to wszystko zwrócił mi uwagę kolega z pracy, który zerknął na mój kod. Morał z całego "zajścia":

  • Analizuj błędy w całości, bo może ich rozwiązanie kryje się na samym końcu opisu otrzymanego wyjątku
  • Czasami warto aby ktoś spojrzał na Twój kod "świeżym" okiem, to może przynieść nie tylko rozwiązanie, ale niejednokrotnie poprawę funkcjonalności
  1. Na razie brak komentarzy.

  1. Na razie brak trackbacków