🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
5 messages
5 total messages Started by Marek S Sun, 16 Jun 2019 23:37
Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane?
#232452
Author: Marek S
Date: Sun, 16 Jun 2019 23:37
48 lines
2525 bytes
Witam,

Cały weekend poświęciłem zgłębianiu zdarzeń w Symfony 4. Gdy któreś z 
nich nie chciało się uruchamiać, drążyłem temat w Google. Niestety 
bezskutecznie. Prawie w ogóle temat zdarzeń nie jest poruszany.

Oto przykład: chciałem przechwycić zdarzenie kreowania tabeli przez 
migrację (onSchemaCreateTable) w celu naprawy błędów make:migration 
(swoją drogą, wygląda na to, że chyba nikt nie testował migracji - błąd 
na błędzie, praktycznie brak wsparcia dla 3rd party schemas).  Wykonałem 
testowego subscribera:

class MigrationEventSubscriber implements EventSubscriber {
     public function getSubscribedEvents() {
         dump("yyyyyyyyyyyyyyyyyyy");
         return array(
             Events::onSchemaCreateTable,
             Events::postConnect,
         );
     }


     public function postConnect(ConnectionEventArgs $args) {
         dump("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     }


     public function onSchemaCreateTable(SchemaCreateTableEventArgs $args) {
         dump("xxxxxxxxxxxxxxxxxxxxxxxxxxx");
     }
}

Dodałem go w services.yaml:

     App\EventSubscribers\MigrationEventSubscriber:
         tags:
             - { name: doctrine.event_subscriber, connection: default }


Przechwytuje on postConnect ale onSchemaCreateTable już nie. Albo ja coś 
źle robię, albo migracje to jeden wielki bubel. W migracjach działa 
tylko stwórz tabelkę w MySQL lub zmodyfikują ją, a gdy chcesz ciut 
więcej lub inną bazę - to spadaj. Czy tak w zamyśle twórców ma działać 
Doctrine?

-- 
Pozdrawiam,
Marek
Re: Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane?
#232453
Author: Rafal Podsiadly
Date: Mon, 01 Jul 2019 20:01
49 lines
3143 bytes
W dniu poniedziałek, 17 czerwca 2019 01:37:18 UTC+2 użytkownik Marek S napisał:
> Witam,
> 
> Cały weekend poświęciłem zgłębianiu zdarzeń w Symfony 4. Gdy któreś z 
> nich nie chciało się uruchamiać, drążyłem temat w Google. Niestety 
> bezskutecznie. Prawie w ogóle temat zdarzeń nie jest poruszany.
> 
> Oto przykład: chciałem przechwycić zdarzenie kreowania tabeli przez 
> migrację (onSchemaCreateTable) w celu naprawy błędów make:migration 
> (swoją drogą, wygląda na to, że chyba nikt nie testował migracji - błąd 
> na błędzie, praktycznie brak wsparcia dla 3rd party schemas).  Wykonałem 
> testowego subscribera:
> 
> class MigrationEventSubscriber implements EventSubscriber {
>      public function getSubscribedEvents() {
>          dump("yyyyyyyyyyyyyyyyyyy");
>          return array(
>              Events::onSchemaCreateTable,
>              Events::postConnect,
>          );
>      }
> 
> 
>      public function postConnect(ConnectionEventArgs $args) {
>          dump("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
>      }
> 
> 
>      public function onSchemaCreateTable(SchemaCreateTableEventArgs $args) {
>          dump("xxxxxxxxxxxxxxxxxxxxxxxxxxx");
>      }
> }
> 
> Dodałem go w services.yaml:
> 
>      App\EventSubscribers\MigrationEventSubscriber:
>          tags:
>              - { name: doctrine.event_subscriber, connection: default }
> 
> 
> Przechwytuje on postConnect ale onSchemaCreateTable już nie. Albo ja coś 
> źle robię, albo migracje to jeden wielki bubel. W migracjach działa 
> tylko stwórz tabelkę w MySQL lub zmodyfikują ją, a gdy chcesz ciut 
> więcej lub inną bazę - to spadaj. Czy tak w zamyśle twórców ma działać 
> Doctrine?
> 
> -- 
> Pozdrawiam,
> Marek
Re: Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane?
#232456
Author: Rafal Podsiadly
Date: Mon, 01 Jul 2019 20:01
1 lines
1404 bytes
Spróbuj https://groups.google.com/forum/#!forum/doctrine-user
Re: Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane?
#232458
Author: Marek S
Date: Thu, 04 Jul 2019 20:45
21 lines
1951 bytes
W dniu 2019-07-01 o 22:01, Rafal Podsiadly pisze:
> Spróbuj https://groups.google.com/forum/#!forum/doctrine-user
> 

Dzięki za poradę. Znalazłem już odpowiedź prześledziwszy źródła. 
Generalnie w międzyczasie podpytałem doświadczonych kolegów. Sprawa ma 
się tak, że "to trzeba wiedzieć" (analizując kod). Nie ma żadnej 
dokumentacji poza kilkoma na krzyż przypadkami.

Doctrine była tylko jednym z przykładów losowo wybranych bundli. Np. ona 
przechwytuje zdarzenia DBALa (na nim bazuje), zmienia je na jako własne 
i puszcza dalej. Robi tak... ale z wyjątkiem jednego, którego nie 
modyfikuje. Nie dziwię się, że nie robi się z tego dokumentacji bo 
trudno wymagać dokumentowania błędów/niedoróbek jako "ficzery".

Mi chodziło o metodykę docierania do informacji skoro nie ma jej u 
źródeł (GitHub) i w Google też cisza. Ale już wiem - tylko analiza kodu.

-- 
Pozdrawiam,
Marek
Re: Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane?
#232460
Author: Rafal Podsiadly
Date: Sun, 07 Jul 2019 04:26
1 lines
1394 bytes
Dzięki za szczegóły. 
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