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


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

Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane?

Started byMarek S <precz@spamowi.com>
First post2019-06-17 01:37 +0200
Last post2019-07-06 21:26 -0700
Articles 5 — 2 participants

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


Contents

  Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane? Marek S <precz@spamowi.com> - 2019-06-17 01:37 +0200
    Re: Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane? Rafal Podsiadly <spinacz24@gmail.com> - 2019-07-01 13:01 -0700
    Re: Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane? Rafal Podsiadly <spinacz24@gmail.com> - 2019-07-01 13:01 -0700
      Re: Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane? Marek S <precz@spamowi.com> - 2019-07-04 22:45 +0200
        Re: Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane? Rafal Podsiadly <spinacz24@gmail.com> - 2019-07-06 21:26 -0700

#16235 — Symfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane?

FromMarek S <precz@spamowi.com>
Date2019-06-17 01:37 +0200
SubjectSymfony 4/Doctrine - czy zdarzenia są w ogóle przez kogoś używane?
Message-ID<qe6jrd$dar$1@node1.news.atman.pl>
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

[toc] | [next] | [standalone]


#16241

FromRafal Podsiadly <spinacz24@gmail.com>
Date2019-07-01 13:01 -0700
Message-ID<36949d1c-f3f1-4f09-903a-1dee11175e1b@googlegroups.com>
In reply to#16235
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

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


#16242

FromRafal Podsiadly <spinacz24@gmail.com>
Date2019-07-01 13:01 -0700
Message-ID<1e94f5f3-ad0e-4d9e-b7a6-02f09f338b4d@googlegroups.com>
In reply to#16235
Spróbuj https://groups.google.com/forum/#!forum/doctrine-user

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


#16244

FromMarek S <precz@spamowi.com>
Date2019-07-04 22:45 +0200
Message-ID<qfloi7$sd4$1@news.icm.edu.pl>
In reply to#16242
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

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


#16245

FromRafal Podsiadly <spinacz24@gmail.com>
Date2019-07-06 21:26 -0700
Message-ID<59c32c3c-40e5-4678-bd1a-ab89e7f74b7f@googlegroups.com>
In reply to#16244
Dzięki za szczegóły. 

[toc] | [prev] | [standalone]


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


csiph-web