Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHPStorm zła klasa argumentu metody
Forum PHP.pl > Inne > Hydepark
Fred1485
Mam taki kodzik (trochę się z Observerem bawię)

  1. abstract class LoginObserver implements SplObserver
  2. {
  3. /**
  4.   * @var Login
  5.   */
  6. private $subject;
  7.  
  8. public function __construct(Login $login)
  9. {
  10. $this->subject = $login;
  11. }
  12. public function update (SplSubject $subject)
  13. {
  14. if ($this->subject === $subject) {
  15. $this->doUpdate($subject);
  16. }
  17. }
  18.  
  19. abstract public function doUpdate(Login $subject);
  20. }


W konstruktorze przekazuję obiekt klasy Login, potem w funkcji update sprawdzam czy parametr update jest on na pewno instancją klasy login, jeśli tak to w klasach potomnych metodę doUpdate piszę tak jak trzeba, bo już wiem że na 100% na obiekcie klasy Login operuję. Działa, lecz IDE dowala się do
  1. $this->doUpdate($subject);
bo definiując metodę doUpdate oczekuję typu Login, a daję typ SplSubject (bo jestem pewien, że jest on również typem Login). Nie da się tego jakoś podreperować, może jakiś PHPDoc, żeby IDE wiedziało co chcę zrobić?
sazian
spróbuj tak
  1. /* @var Login $subject */
  2. $this->doUpdate($subject);

w netbeansie powinno zadziałać więc w stormie może też się uda...
Fred1485
Działa! Super, dzięki wielkie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.