🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #232365

Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów?

#232365
From: Borys Pogoreło
Date: Tue, 16 Apr 2019 15:55
67 lines
4060 bytes
Dnia Mon, 15 Apr 2019 23:38:33 +0200, Marek S napisał(a):

> Czy operator new nie tworzy właśnie gotowego obiektu?
> Przedebugowałem kod i wyszło mi, że pierwsze wstrzyknięcie jest 
> równoważnikiem wywołania new. Kolejne: to już korzystanie z tego obiektu.

W najprostszym przypadku tak właśnie jest. Ale zadaniem autowiringu nie
jest proste tworzenie obiektów, tylko wyciąganie ich z kontenera. Gdzie
najczęściej są już skonfigurowane.

Mam wrażenie, że kompletnie pominąłeś ten temat w Laravelu, choć było to
tłumaczone.

> Tak też myślałem. Tutoriale czasem powodują moje zakłopotanie. W Udemy 
> gość pokazuje wstrzykiwanie w wielu metodach kontrolera. Wydało mi się 
> to ... wręcz patologiczne. Pewnie jeszcze wrócę tu na grupę z podobnymi 
> doświadczeniami do wyprostowania - więc z góry dziękuję za wyrozumiałość.

Wszystko zależy od potrzeb.

> Dziś dyskutowałem z kolegą na ten sam temat. Zwrócił mi uwagę na pewną 
> cechę Symfony. Można w niej zwyczajnie osadzać w twigach dowolną ilość 
> kontrolerów i wskazywać na metody jakie mają renderować dany fragment. 
> Tak na marginesie w Laravelu to było niby też możliwe ale i tak bardzo 
> ograniczone funkcjonalnie - m.in. dlatego pożegnałem ten framework.

I bardzo dobrze, że tak było, bo rozrzucanie logiki po wielu kontrolerach
to średni pomysł i szybka droga do bałaganu w kodzie, którego już nikt poza
autorem nie ogarnie.

>> Po pierwsze to ta metoda ma wyjątkowo nieczytelną nazwę. getRandom...co?
> 
> :-D :-D Ok. Następnym razem nazwę ją dupa(). Serio! :-D Wtedy nikt nie 
> śmie zapytać do czego dupa służy :-D Taki dialekt paru moich znajomych z 
> powodzeniem stosuje (ja również) jako odpowiednik Lorem ipsum w tekstach 
> pisanych :-D

Mógłbym zrobić Ci wykład z dbania o poprawne nazewnictwo w kodzie, również
testowym, który pokazujesz światu. Ale... chyba nie ma sensu.

> A różnie. W ramach testów zmieniam do woli jej funkcjonalność. 
> Pierwotnie była to tablica, a teraz kolekcja ORM. Jutro być może będzie 
> coś innego :-D

I my mamy zgadywać?

> P.S.
> W międzyczasie wynikła pewna niedogodność dla mnie. W odróżnieniu od 
> Laravela, czystego PHP, JS, CSS, HTML, cokolwiek - nie potrafię poruszać 
> się po dokumentacji Symfony. Przykładowo, w wielu przykładach 
> kontrolerów widuję $this->addFlash(). Z jakiegoś komentarza w kodzie 
> dowiedziałem się, że jest to odpowiednik:
> 
> $request->getSession()->getFlashBag()->add()
> 
> Załóżmy  jednak, że czyjś komentarz mi nie wystarcza i chciałbym w 
> oficjalnej dokumentacji poczytać o tym. Jak docierasz do takich 
> informacji? Masz jakąś listę linków? Dlaczego ta funkcja wydaje się być 
> nieudokumentowaną, choć jest powszechnie używana?

Bardzo prosto, zaglądasz do źródeł. getFlash() to jest helper:

https://github.com/symfony/symfony/blob/4.0/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/SessionHelper.php#L45

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Technical Details
Message-ID: <ppp4e0u3vnag$.ulgdsy0emagt.dlg@40tude.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.promontel.net.pl!not-for-mail
References: <q90548$dop$1@node1.news.atman.pl> <gvp9os44wga7.qk7j5bqtq9y4$.dlg@40tude.net> <q92tkr$99a$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.promontel.net.pl!not-for-mail
From: Borys Pogoreło <borys@pl.edu.leszno>
Newsgroups: pl.comp.lang.php
Subject: Re: Symfony 4 - jaka korzyść z wstrzykiwanych
 service providerów?
Date: Tue, 16 Apr 2019 17:55:40 +0200
Organization: snafu
Lines: 67
Message-ID: <ppp4e0u3vnag$.ulgdsy0emagt.dlg@40tude.net>
References: <q90548$dop$1@node1.news.atman.pl> <gvp9os44wga7.qk7j5bqtq9y4$.dlg@40tude.net> <q92tkr$99a$1@node2.news.atman.pl>
NNTP-Posting-Host: public-gprs177350.centertel.pl
Mime-Version: 1.0
X-Trace: thunar.promontel.net.pl 1555430132 5679 46.134.32.7 (16 Apr 2019 15:55:32 GMT)
X-Complaints-To: abuse@promontel.net.pl
NNTP-Posting-Date: Tue, 16 Apr 2019 15:55:32 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.14.1pl
X-fnord: obey.
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit