Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co to takiego? "Request $request, Response $response"
Forum PHP.pl > Forum > Przedszkole
KotWButach
Witam was chciałbym się dziś dowiedzieć co przesłać jako argumenty bo wywala mi błąd a nie bardzo wiem co tam wstawić. sad.gif

Za pomoc dziękuje - sponsor postu - Ciemnogród SA smile.gif businesssmiley.png

  1. public function __construct(Request $request, Response $response)
  2. {
  3. #...
  4. }
nospor
Masz tam wstawic obiekt klasy Request oraz obiekt klasy Response
freemp3
Dobrze by było, gdybyś podał treść błędu.
Co do pytania to są to typy zmiennych jakie mają być przekazane konstruktorowi. Czyli pierwszy argument powinien być obiektem typu Request, natomiast drugi obiektem typu Response. Mogą to być także obiekty, które dziedziczą po ww. klasach.
Sephirus
Mi to wygląda jak konstruktor kontrolera w ZEND - jeśli tak to obieków kontrolera raczej się nie inicjalizuje samemu a na ogół dispatch'uje poprzez front-kontroler wink.gif

Gdzie i po co to masz chęć zastosować?
KotWButach
A czy jest takie miejsce gdzie można by dogłębnie poczytać o tworzeniu tego typu klas bo szukam w internecie i z truden cokolwiek mogę znaleźć sad.gif

Sephirus: W sumie to projekt służący do nauki smile.gif
vonski
Ale jakiego "typu" klas? To się nazywa Type Hinting: http://www.php.net/manual/en/language.oop5.typehinting.php. W "poważnych" językach to normalka, w PHP jest to "zubożone" tylko do klas i tablic - logiczne, ze względu na zastosowanie tego języka.
Sephirus
Tak jak koledzy pisali wcześniej - taki zabieg nazywa się potocznie "konkretyzacją argumentów/parametrów" metody/funkcji.

Polega to na tym, że już przy deklaracji podaje się "typ" obiektu jaki ma być podawany w parametrze. W twoim przypadku takim typem jest odpowiednio Request i Response.

Jeśli mamy taki kod to musimy przekazać w argumentach obiekt powstały na 3 sposoby:

1. Obiekt klasy podanej w argumencie - czyli jakiś obiekt klasy "Request" - jest to rzadko używane.

2. Obiekt klasy, która dziedziczy po klasie "Request" - może to być klasa którą sam napiszesz ale dziedziczy po tej klasie "Request"

3. Obiekt klasy, która implementuje interfejs "Request" - to najczęściej spotykane rozwiązanie.

Ogólnie taki kod stosuje się wówczas, gdy dana metoda/funkcja musi dostać w parametrze obiekt, który musi posiadać jakieś konkretne funkcjonalności. przykładowo w Twoim przykładzie wymaga obiektu klasy Request lub obiektu klasy która implementuje interfejs Request. Taki interfejs może mieć ustawione kilka metod, które muszą być w klasie zaimplementowane - bo będą one wykorzystywane w tej metodzie.

Jeżeli mało zrozumiałeś z tego co napisałem przejdź do kursu programowania obiektowego w PHP i dowiedz się czym jest dziedziczenie, interfejsy, klasy abstrakcyjne, konkretyzacja parametrów. wink.gif
viking
Identyczny wątek dopiero co
Temat: PHP request response
KotWButach
Sephirus wszystko jasno jasniutko opisałeś smile.gif Po prostu nie wiedziałem o Hintingu (o którym wspomniał vonski) a ty dopełniłeś dzieła smile.gif
Czyli reasumując zapobiega to władowaniu się przez przypadek zwykłej klasy do w tym przypadku konstruktora.

Teraz tylko musze zobaczyć co muszą zawierać takie klasy i będzie super smile.gif Response i Request by były funkcjonalne i użyteczne dla systemu.
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.