![]() |
![]() ![]() |
![]() |
![]()
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 ![]() 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 ![]() -- 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 ![]() 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 ![]() 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 -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]() ![]()
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 ![]() Pozdrawiam. -------------------- Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
|
|
|
![]()
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
![]() ![]() Pozdrawiam -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
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 ![]() ![]() Pozdrawiam Polecam użyć Doctrine ![]() -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.08.2025 - 03:32 |