Slim 3 uzywa na sztywno (czesc frameworka a nie integrowalny komponent) wlasnej implementacji PSR7 i PSR15 i z tego co wiem "po swojemu" podpina sobie request i response z zajebistym FastRoute. Kiedys probowalem sobie znalezc osobne repozytoria do eksperymentow z wlasnym api frameworkiem, ale nic nie znalazlem.
Slim 4 natomiast stal sie bardziej elastyczny i nadal w towarzystwie jeszcze raz powtarzam rewelacyjnego FastRoute, daje wieksza mozliwosc wyboru, dodatkowo ostatecznie zdecydowano sie upublicznic zintegrowane wczesniej na sztywno slim/request i slim/response Slim PSR-7 .
Wiec nie da rady o tak sobie zaczac uzywac tych dwoch klas wszedzie gdzie sie chce.
Ale jak ja uzylem Reponse klas w starym projekcie, ktory nie jest oparty o Slim to ta odpowiedz nie zostanie odpowiednio zrenderowana. I tak sie zastanawiam co tutaj zorobic teraz
Da rade chociaz z malym ale. Jesli chodzi o integracje podanych przeze mnie na poczatku implementacji PSR7 i PSR15, to wszystko zalezy od routingu jaki odpalasz na swoich projektach.
Propozycji jest cala masa, musisz jedynie sprawdzic routing swojego projektu (nie Slim'a) czy oparty jest na tych standardach. jesli tak, to moim zdaniem moglbys bez problemow podpiac dowolna implementacje PSR7, PSR15 kwestie sposobu podpiecia znajdziesz w dokumentacji.
Jesli jednak Twoja aplikacja kliencka napisana jest w Symfony to nie pozostaje Ci nic innego jak psr-http-message-brigde . Zatem rowniez ok bo Nyholm-PSR-7 niestety z paskudnym routerem a w konsekwencji bez calego dobrodziejstwa prawdziwego middleware. W taki sposob bedziesz mial zaimplementowane PSR7 i PSR15 zarowno po stronie clienta jak i api.
Nie ma tu znaczenia, ze api na Slim 3 bedzie wykorzystywalo jedna implementacje PSR7, PSR15 a klient inna. Masz przeciez do czynienia z implementacja interfejsow.
Hope it helps. :)
Jeszcze jedno:
Domyslam sie, ze Slim pewnie za pomoca$app->run() buduje na koniec odpowiedni Response. Ale jak ja uzylem Reponse klas w starym projekcie, ktory nie jest oparty o Slim to ta odpowiedz nie zostanie odpowiednio zrenderowana. I tak sie zastanawiam co tutaj zorobic teraz. Dodam, ze uzywamy Slim v3.
Nie, zarowno request jak i response sa generowane przed routingiem. Sa jednak immutable, zatem za kazdym razem kiedy cos majstrujesz przy tych obiektach, tak naprawde tworzysz defakto nowe instancje.