Posts Tagged ‘ Errors

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

Błąd podczas uruchamiania Eclipse "JVM terminated. Exit code=13"

Ściągnąłem Eclipse w wersji 3.3 następnie rozpakowałem archiwum do folderu o nazwie „eclipse 3.3″. Podczas pierwszego uruchomienia otrzymałem dość interesujące „powitanie” – widoczne na screen-ie poniżej.

JVM terminated. Exit code=13

Okazuję się, że problem stanowiła tutaj nazwa folderu w którym umieściłem eclipse – jej zmiana przyniosła porządany efekt. Trywialne, ale dłuższą chwilę zajęło mi dotarcie do rozwiązania. :)