Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Fragment PSR-7, Co to właściwie oznacza...
trzczy
post 30.01.2016, 21:15:34
Post #1





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Znam trochę angielski, ale jakoś nie rozumiem tego fragmentu PSR-7. A ciekawi mnie on, bo zastanawiam się, czy powinno się implementować MessageInterface również, kiedy implementuje się RequestInterface. Wydaje mi się, że w tym fragmencie o tym jest. Proszę o wytłumaczenie tego fragmentu:


'
Both Psr\Http\Message\RequestInterface and Psr\Http\Message\ResponseInterface extend Psr\Http\Message\MessageInterface.

While Psr\Http\Message\MessageInterface MAY be implemented directly, implementors SHOULD implement Psr\Http\Message\RequestInterface and Psr\Http\Message\ResponseInterface.

'

Z góry dziękuję
Go to the top of the page
+Quote Post
lukaskolista
post 30.01.2016, 21:39:31
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Tak trochę wyrwane z kontekstu, jednak patrząc na cały tekst odnośnie tych interface'ów (http://www.php-fig.org/psr/psr-7/#1-1-messages) można to zinterpretować tak:

Można implementować bezpośrednio interface Psr\Http\Message\MessageInterface, jednak zaleca się implementację (osobno) Psr\Http\Message\RequestInterface i Psr\Http\Message\ResponseInterface.

Jak się mylę, to mnie poprawcie.
Go to the top of the page
+Quote Post
trzczy
post 31.01.2016, 11:19:41
Post #3





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Problem w tym, że ten fragment po przetłumaczeniu na polski jest wciąż niezrozumiały. Podszedłem do sprawy od drugiej strony. Skoro podawany przez FIG RequestInterface rozszerza MessageInterface, to nie powinno się stosować RequestInterface bez MessageInterface.

  1. interface RequestInterface extends MessageInterface
Go to the top of the page
+Quote Post
Comandeer
post 31.01.2016, 11:32:06
Post #4





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Tak po mojemu ten tekst oznacza tyle, co "nie powinno się tworzyć klas bezpośrednio implementujących interfejsu MessageInterface".


--------------------
Go to the top of the page
+Quote Post
lukaskolista
post 31.01.2016, 11:36:04
Post #5





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Cytat
Skoro podawany przez FIG RequestInterface rozszerza MessageInterface, to nie powinno się stosować RequestInterface bez MessageInterface.
Nie tyle "nie powinno się stosować", po prostu nie da się tego niezastosować smile.gif

Od początku:
Masz 3 intarface'y:
MessageInterface
RequestInterface extends MessageInterface
ResponseInterface extends MessageInterface

Albo robisz 1 implementację MessageInterface i używasz jej dla zapytań i odpowiedzi, albo robisz 2 implementacje (jedna RequestInterface i jedna ResponseInterface) i implementacji RequestInterface używasz do przyjmowania zapytań, a implementacji ResponseInterface używasz do zwracania odpowiedzi.

Edit:
W końcu znalazłem: zend-diactoros
Zwróć uwagę na klasy Request i Response - implementują odpowiednie interface'y i nigdzie nie ma bezpośredniej implementacji MessageInterface, ponieważ inteface'y Request i Response ją wymuszają.

Ten post edytował lukaskolista 31.01.2016, 12:08:04
Go to the top of the page
+Quote Post
trzczy
post 31.01.2016, 12:22:54
Post #6





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Rzeczywiście się nie da implementować RequestInterface z pominięciem MessageInterface. Pozostaje tylko pytanie o zakres przyzwolenia na implementowanie MessageInterafce takie, że implementowanie RequestInterface lub ResponseInterface zostaje pominięte.
Comandeer, zdaje się, nie widzi takiego przyzwolenia.
Go to the top of the page
+Quote Post
lukaskolista
post 31.01.2016, 12:38:58
Post #7





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Przecież przetłumaczyłem Ci treść dokumentacji PSR-7, jest tam wyraźnie napisane, że można implementować bezpośrednio MessageInterface, ale się nie powinno i lepiej implementować osobno RequestInterface i ResponseInterface.
Go to the top of the page
+Quote Post
trzczy
post 31.01.2016, 12:59:41
Post #8





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Ok, ale nie trzeba tak personalnie: ja, ty. Przecież mówimy o zagadnieniach, które samodzielnie funkcjonują bez nas :-)
Go to the top of the page
+Quote Post
lukaskolista
post 31.01.2016, 13:08:32
Post #9





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Nie było nic personalnego w mojej wypowiedzi (a jak tak, to przepraszam), po prostu odniosłem się do Twojego pytania i mojego pierwszego postu w tym wątku.
Go to the top of the page
+Quote Post
Comandeer
post 31.01.2016, 14:58:05
Post #10





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


@trzczy czy "nie powinno" oznacza "nie wolno"?


--------------------
Go to the top of the page
+Quote Post
com
post 31.01.2016, 15:44:14
Post #11





Grupa: Zarejestrowani
Postów: 3 033
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


to oznacza tyle, ze można wstawić tam coś co implementuje MessageInterface, ale powinniśmy użyć RequestInterface, lub ResponseInterface. Chodzi o to, że obiekt ten nie może nie implementować MessageInterface wink.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 22:49