Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.lang.php > #16157
| From | Marek S <precz@spamowi.com> |
|---|---|
| Newsgroups | pl.comp.lang.php |
| Subject | Re: Symfony 4 - jaka korzyść z wstrzykiwanych service providerów? |
| Date | 2019-04-17 00:11 +0200 |
| Organization | ATMAN - ATM S.A. |
| Message-ID | <q95jus$ncl$1@node2.news.atman.pl> (permalink) |
| References | <q90548$dop$1@node1.news.atman.pl> <gvp9os44wga7.qk7j5bqtq9y4$.dlg@40tude.net> <q92tkr$99a$1@node2.news.atman.pl> <ppp4e0u3vnag$.ulgdsy0emagt.dlg@40tude.net> |
W dniu 2019-04-16 o 17:55, Borys Pogoreło pisze: >> 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. No właśnie o tym piszę :-) > Mam wrażenie, że kompletnie pominąłeś ten temat w Laravelu, choć było to > tłumaczone. Właśnie to jest ta chwila, o której wspominałem. W Laravelu nie byłem w stanie ogarnąć ideologii. Czytałem niektóre rozdziały po 5x testując równolegle kod. Nie mając w głowie całej tej ideologii, nie byłem w stanie wyobrazić sobie aplikacji. Zapoznając się z Symfonią mam wrażenie, że jest ona prosta jak pisanie w czystym PHP. Bez bełkotu fasadowego, który czasem nawet jedną PHPową funkcję zamykał w sobie, by ją pod inną nazwą udostępnić. A do tego nie było szans na analizę źródeł gdy coś w dokumentacji nie było jasne bo źródła w Laravelu to najczęściej 1-linijkowy kod, który zwykle woła inny 1-linijkowy kod a ten kolejny. Udało mi się w ten sposób prześledzić kilkanaście poziomów zagnieżdżenia i niczego się nie dowiedzieć. Swoją drogą jak potężny stos musi tworzyć aplikacja "hello world" w Laravelu, to sobie nie jestem w stanie wyobrazić nawet. W Symfonii kod frameworka może czasem za dokumentację robić. Dlatego odniosłeś wrażenie, że pominąłem całą sekcję dokumentacji. Chiński bym szybciej pojął. >> 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. Nie rozumiem? W Symfonii udało mi się zrobić przeglądarkę newsów i jej renderowanie za pomocą 1 kontrolera na stronie generowanej z udziałem kilku innych kontrolerów. W Laravelu każdy podobny do w/w funkcjonalnie kontroler musiał mieć brata bliźniaka w postaci serwisu, bo tylko serwisy dawało się osadzać. Więc w laravelu jedna funkcjonalność była rozwalona na przynajmniej 2 pliki. A w Symfonii masz tylko 1 przecież. Nie wspominając o konieczności rozbijania jednej złożonej strony na wiele blade'ów zamiast umieszczania prostych bloczków typu render(controller + twig do niego). Wtedy twig podąża za kontrolerem przenosząc taki bloczek w inne miejsce. Właśnie to bałaganiarstwo Laravela też było gwoździem do trumny. Oczywiście opisuję swoje wrażenia. > 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. Ok, to może inaczej. Konkretnie. Robię jakąś funkcję, której zadaniem będzie istnieć przez kilka minut - aż sprawdzę jak jakiś mechanizm działa a potem ją skasuję. Powiedz mi zatem, jak Ty dbasz o poprawne nazewnictwo w takich przypadkach? Czy tworzysz sekcje autodokumentacji do takich metod? Pchasz to na Gita? Opisujesz potem powody usunięcia tejże funkcji w commitach? Czy tą czynność rejestrujesz np. w Sprintach na Scumie? Tworzysz do niej backloga na Agile Acceleratorze i powołujesz się na ID ticketu w commitach? Masz jakiegoś testera, któremu zlecasz testy kodu pokroju "hello world"? A czy gdy testujesz fragment kodu na np. PHP Sandboxie (taka strona WWW), to również dbasz tam o takie rzeczy skoro po zamknięciu przeglądarki kod i tak zniknie? Serio? Sorki, ale wydaje mi się paranoją dbanie o czystość chwilowego kodu. Trzeba mieć naprawdę nadmiar wolnego czasu by tak postępować. Kod którego nikt nigdy nie zobaczy bo zniknie po paru minutach egzystencji, przy takim postępowaniu rozpościera się na dni pracy. >> 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ć? Po co? Ale ... o co chodzi? Dlaczego potrzebujesz mieć ściśle zdefiniowaną funkcjonalność tej metody? Załóżmy, że kosi trawnik. Ona po prostu tam jest. Załóż, że nic nie zwraca a my chcemy ją tylko wywołać z parametrem jakimś (np. wartość int). Tymczasem wstrzyknięcie serwisu do metody blokuje możliwość przekazanie parametru do niej, bo spodziewa się MarekService, a nie int'a. > 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 > Ale tam też nie ma addFash(), o który pytam :-( Zresztą nawet jeśli byłby tam on, to dowiadywanie się o istnieniu (w dodatku powszechnie stosowanych) funkcji/metod poprzez analizę źródeł zamiast szybkiego dowiedzenia się w dokumentacji, jest lekko dziwne... -- Pozdrawiam, Marek
Back to pl.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
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