![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 24.04.2006 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Czesc.
Co to jest:
a moze powinno byc:
Jak to sie nazywa, bo nawet chcac w google znalezc nie wiem czego szukac (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) Ten post edytował xbitdesigns 5.04.2008, 01:58:31 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Taka konstrukcja nazywa się Fluent Interfaces.
Jest to sposób kodowania polegający na tym że jedna funkcja klasy zwraca instancję klasy z której została wywołana dzięki temu możesz kontynuować wykonywanie funkcji dalej. Mona dzięki temu osiągnąć bardzo wygodne rzeczy. Na przykład w Doctrine możesz robic tak:
Więcej poczytasz tutaj: Fluent Interfaces in PHP W jednym z ostatnich php|archtectów był też ciekawy artykuł: Are fluent interfaces useful? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 24.04.2006 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Thanks Mike.
Zmienilem opis tematu, bo moze ktos bedzie tego szukal. Milego dnia (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) -- Przyklad uzycia:
Kazda metoda musi zwracac obiekt, i na tymze zwroconym obiekcie zostanie odpalona nastepna metoda. Tutaj zwracamy $this. Tak ogolnie to opisalem, gdyz nadal zglebiam temat (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) Ten post edytował xbitdesigns 5.04.2008, 17:07:40 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Dołączę się do tematu. Bardzo podoba mi się ta metoda, jednak nie wiem jak ją zaimplementować. W powyższym przykładzie wszystko jest oczywiste, bo funkcje używają tylko echo, ale gdy ma istnieć jakaś zależność pomiędzy nimi wszystko się komplikuje.
Chcę napisać klasę generującą zapytania sql i używać jej w przybliżeniu tak:
Co w tym przypadku zostanie przypisane do zmiennej $query? Wartość ostatniej funkcji? Jeżeli tak, to musiałbym to chyba rozwiązać w taki sposób:
i wywoływać tak
Pisałem przed chwilą jako przykład, nie wiem czy działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Czy dobrze myślę? Jest może jakieś prostsze rozwiązanie? Bardzo proszę o odpowiedź Pozdrawiam Ten post edytował l0ud 6.04.2008, 19:12:14 |
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 10 Dołączył: 13.02.2007 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
@l0ud: dobrze myślisz. Skoro tak jesteśmy przy Fluent Interface, to pokażę Wam moją klasę SQL z wykorzystaniem tego:
Wzorowane na Zend_Db_Table, a bitttttt =) Czasami sobie nawet z niej korzystam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdrawiam. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie, na pewno się przyda (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Wygląda na to, że mam nowe zajęcie na parę godzin: przebudować klasę generowania zapytań (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Pozdrawiam |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 384 Pomógł: 6 Dołączył: 11.09.2004 Skąd: Grodzisk Mazowiecki Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie, na pewno się przyda (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Wygląda na to, że mam nowe zajęcie na parę godzin: przebudować klasę generowania zapytań (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam Polecam użyć Doctrine (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Polecam użyć Doctrine (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) A ja nie. Doctrine jest fajne ale kiepsko udokumentowane i zostaje w tyle daleko za Propelem jeśli chodzi o możliwości.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 11:33 |