🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
4 messages
4 total messages Started by Marek S Sun, 09 Jun 2019 19:28
Symfony 4 - jak konfigurować event'y?
#232443
Author: Marek S
Date: Sun, 09 Jun 2019 19:28
40 lines
2575 bytes
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
Re: Symfony 4 - jak konfigurować event'y?
#232444
Author: Marek S
Date: Tue, 18 Jun 2019 19:18
5 lines
949 bytes
Problem rozwiązany - zamykam wątek.

-- 
Pozdrawiam,
Marek
Re: Symfony 4 - jak konfigurować event'y?
#232445
Author: Rafal Podsiadly
Date: Thu, 27 Jun 2019 04:40
1 lines
1373 bytes
Jesli rozwiazujesz problem dobrze jest podac tresc rozwiazania tak dla potomnych. 
Re: Symfony 4 - jak konfigurować event'y?
#232446
Author: Marek S
Date: Sun, 30 Jun 2019 13:00
34 lines
2692 bytes
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
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads