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


Groups > pl.comp.lang.php > #16232 > unrolled thread

Symfony 4 - jak konfigurować event'y?

Started byMarek S <precz@spamowi.com>
First post2019-06-09 21:28 +0200
Last post2019-06-30 15:00 +0200
Articles 4 — 2 participants

Back to article view | Back to pl.comp.lang.php


Contents

  Symfony 4 - jak konfigurować event'y? Marek S <precz@spamowi.com> - 2019-06-09 21:28 +0200
    Re: Symfony 4 - jak konfigurować event'y? Marek S <precz@spamowi.com> - 2019-06-18 21:18 +0200
      Re: Symfony 4 - jak konfigurować event'y? Rafal Podsiadly <spinacz24@gmail.com> - 2019-06-26 21:40 -0700
        Re: Symfony 4 - jak konfigurować event'y? Marek S <precz@spamowi.com> - 2019-06-30 15:00 +0200

#16232 — Symfony 4 - jak konfigurować event'y?

FromMarek S <precz@spamowi.com>
Date2019-06-09 21:28 +0200
SubjectSymfony 4 - jak konfigurować event'y?
Message-ID<qdjmlu$ctg$1@node2.news.atman.pl>
Witam,

Zauważyłem, że co najmniej od 2016 roku migracje Doctrine zawierają błąd 
uniemożliwiający ich stosowanie w połączeniu z bazą PostgreSQL. Na DBALu 
od lat wisi issue w tej kwestii. Nie chcę poprawiać niedoróbek 
biblioteki gdyż zostaną nadpisane przy kolejnych aktualizacjach. Zatem 
chciałbym zrobić coś takiego, że gdy na migracji odpalamy downgrade, 
powstanie zdarzenie migracyjne, które zostanie przechwycone i przejmie 
kontrolę nad nieprawidłowym kodem metody "down" migracji.

Ponieważ jednak jestem nieobyty w zdarzeniach, próbuję wyczytać jak one 
działają tu:
https://symfony.com/doc/current/event_dispatcher.html

Niestety generalnie dokumentacja Symfony jest bardzo słaba. Nie potrafię 
się dowiedzieć w jaki sposób zarejestrować listenera. Niby jest przykład 
w powyższym linku:

# config/services.yaml
services:
     App\EventListener\ExceptionListener:
         tags:
             - { name: kernel.event_listener, event: kernel.exception }

Fajnie, ale ja chce przechwytywać zdarzenia migracyjne. Jaka jest 
metodologia docierania do informacji, co należy wpisać w powyższe 
zaklęcie magiczne? Chodzi mi o sekcję w nawiasach {}. Skąd biorą się te 
nazwy? Załóżmy, że teraz chodzi mi o migracje. Ale jutro może mi chodzić 
o bundle X, który ma swoje zdarzenia wylistowane w opisie, ale bez 
informacji jak je skonfigurować (bo to zadanie do zrobienia w Symfony). 
Zależy mi na samej metodologii dociekania. Nie chcę szukać po Stackach 
(licząc na łut szczęścia, że trafię na opis konfiguracji listenera dla 
konkretnego bundla). To powinno być opisane w Symfony, jak sądzę.

-- 
Pozdrawiam,
Marek
-- 
Pozdrawiam,
Marek

[toc] | [next] | [standalone]


#16238

FromMarek S <precz@spamowi.com>
Date2019-06-18 21:18 +0200
Message-ID<qebdf8$fl0$3@node1.news.atman.pl>
In reply to#16232
Problem rozwiązany - zamykam wątek.

-- 
Pozdrawiam,
Marek

[toc] | [prev] | [next] | [standalone]


#16239

FromRafal Podsiadly <spinacz24@gmail.com>
Date2019-06-26 21:40 -0700
Message-ID<a871eb23-c4fb-4067-b226-6ef638a41696@googlegroups.com>
In reply to#16238
Jesli rozwiazujesz problem dobrze jest podac tresc rozwiazania tak dla potomnych. 

[toc] | [prev] | [next] | [standalone]


#16240

FromMarek S <precz@spamowi.com>
Date2019-06-30 15:00 +0200
Message-ID<qfabpr$j2b$1@node1.news.atman.pl>
In reply to#16239
W dniu 2019-06-27 o 06:40, Rafal Podsiadly pisze:
> Jesli rozwiazujesz problem dobrze jest podac tresc rozwiazania tak dla potomnych.
> 

Wiesz? Zastanawiałem się nad tym. Są niestety dwa problemy:

1) Niewiele osób temat interesuje (mało jest pytań na Stacku itp.). 
Zaryzykuję wniosek, że ludzie nie używają eventów lub ograniczają się do 
opisanych pre/post w dokumentacji Symfony. Inne ignorują.

2) Odpowiedź byłaby bardzo złożona, bo zazwyczaj funkcjonalności te nie 
są udokumentowane i trzeba kod źródłowy analizować. Czasem i to nie 
pomaga bo np. Doctrine potrafi przechwycić zdarzenia po DBALu, na którym 
bazuje, zmienić im etykietę i udawać, że są to jej własne, więc analiza 
kodu DBALa była stratą czasu. Co gorsze, jedno ze zdarzeń nie jest 
"maskowane" lecz przepuszczane wprost więc inaczej trzeba je przechwytywać.

3) Bugi i niedoróbki ciągną się przez lata, nawet jeśli jest to kwestią 
dodania paru linii kodu. Należy te bugi implementować jako funkcjonalność.

Nie ma więc szans na napisanie jakiejkolwiek informacji. W zasadzie 
autor Doctrine powinien zakasać rękawy i napisać, co zrobił i jak tego 
używać. Programowanie bazuje na odkryciach a nie czytaniu dokumentacji. 
Tak jest ze wszystkim w Symfony - zapewne dlatego to banalne środowisko 
programistyczne urosło do miana mistycznie trudnego. Na początku 
szybciej byłoby zrealizować zadania w czystym PHP. Dopiero po dłuższym 
obcowaniu typu pół roku+ i zacięciu odkrywcy, proporcja zmienia się.

Tak więc proste CRUDy można sobie pisać. Coś bardziej złożonego - wolna 
amerykanka.

-- 
Pozdrawiam,
Marek

[toc] | [prev] | [standalone]


Back to top | Article view | pl.comp.lang.php


csiph-web