Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.php > #16148

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

Path csiph.com!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!85.12.16.69.MISMATCH!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From Marek S <precz@spamowi.com>
Newsgroups pl.comp.lang.php
Subject Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów?
Date Mon, 15 Apr 2019 23:38:33 +0200
Organization ATMAN - ATM S.A.
Lines 81
Message-ID <q92tkr$99a$1@node2.news.atman.pl> (permalink)
References <q90548$dop$1@node1.news.atman.pl> <gvp9os44wga7.qk7j5bqtq9y4$.dlg@40tude.net>
NNTP-Posting-Host 89-70-94-204.dynamic.chello.pl
Mime-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 8bit
X-Trace node2.news.atman.pl 1555364315 9514 89.70.94.204 (15 Apr 2019 21:38:35 GMT)
X-Complaints-To usenet@atman.pl
NNTP-Posting-Date Mon, 15 Apr 2019 21:38:35 +0000 (UTC)
User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
In-Reply-To <gvp9os44wga7.qk7j5bqtq9y4$.dlg@40tude.net>
Content-Language pl
X-Received-Bytes 4745
X-Received-Body-CRC 1268605819
Xref csiph.com pl.comp.lang.php:16148

Show key headers only | View raw


W dniu 2019-04-15 o 00:56, Borys Pogoreło pisze:

>> Prościej byłoby w konstruktorze przypisać do zmiennej prywatnej:
>>
>> $this->prv=new MarekService();
>>
>> ...i dalej w kodzie posługiwać się $this->priv zamiast każdorazowo
>> wstrzykiwać coś.
> 
> Autowiring ma za zadanie dostarczyć Ci gotowy obiekt.

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.

> Jeśli potrzebujesz go
> w wielu miejscach, to rzecz jasna najwięcej sensu ma wstrzyknięcie go w
> konstruktorze.

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ść.

> 
> Z kolei powyższy przykład nie ma sensu - jeśli potrzebujesz nowy obiekt, to
> go utwórz, do tego autowiring nie jest potrzebny.

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.

Może się zdarzyć, że niektóre kontrolery będą potrzebowały MarekService. 
Wtedy używając wstrzyknięcia w konstruktorach (a nie new)  powodujemy, 
że serwis zostanie zainicjowany raz, przez pierwszy w kolejności 
kontroler, a reszta kontrolerów będzie korzystała z instancji serwisu.

> 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

> Najpierw określ, co ta metoda (i usługa jako taka) ma w ogóle robić, bo na
> razie zwraca tablicę?/kolekcję? 

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

> gifts bez żadnych zmian. A MarekService to
> już w ogóle z niczym się nie kojarzy - ale to jak rozumiem po prostu testy.
> 

Dokładnie tak :-D Wszystko co robię z Symfonią, wielokrotnie trafiało do 
kosza i inicjowałem nowe struktury w celach poznawczych. I jeszcze przez 
jakiś czas tab będzie, dopóki nie poznam środowiska by się w nim 
sprawnie poruszać.

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?

W tym względzie dałbym jako adept, mega wielki minus...

-- 
Pozdrawiam,
Marek

Back to pl.comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Symfony 4 - jaka korzyść z wstrzykiwanych service providerów? Marek S <precz@spamowi.com> - 2019-04-14 22:27 +0200
  Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-15 00:56 +0200
    Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów? Marek S <precz@spamowi.com> - 2019-04-15 23:38 +0200
      Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-16 17:55 +0200
        Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów? Marek S <precz@spamowi.com> - 2019-04-17 00:11 +0200
          Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-17 10:36 +0200
            Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów? Marek S <precz@spamowi.com> - 2019-04-17 22:26 +0200
              Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów? Borys Pogoreło <borys@pl.edu.leszno> - 2019-04-30 16:13 +0200

csiph-web