Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.lang.php > #16235 > unrolled thread
| Started by | Marek S <precz@spamowi.com> |
|---|---|
| First post | 2019-06-17 01:37 +0200 |
| Last post | 2019-07-06 21:26 -0700 |
| Articles | 5 — 2 participants |
Back to article view | Back to pl.comp.lang.php
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
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2019-06-17 01:37 +0200 |
| Subject | Symfony 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]
| From | Rafal Podsiadly <spinacz24@gmail.com> |
|---|---|
| Date | 2019-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]
| From | Rafal Podsiadly <spinacz24@gmail.com> |
|---|---|
| Date | 2019-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]
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2019-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]
| From | Rafal Podsiadly <spinacz24@gmail.com> |
|---|---|
| Date | 2019-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