Kdyby\Events a eventy nad třídami, co nejsou služba
- thunderbuff
- Člen | 164
Ahoj, v aplikaci mám více uživatelů a z určitých důvodů mají každý vlastní databázi. Proto musím třídy, které bych obyčejně registroval jako služby, vytvářet přes factory.
<?php
$user = $userRepository->find(1);
$articleService = $articleServiceFactory->create($user);
?>
V takto vytvořené třídě ArticleService se nevolají listenery, protože Kdyby\Events vyžaduje, aby byla ArticleService zaregistrovaná jako služba. Je možnost, jak eventy zprovoznit? A pokud ne, máte nějaký tip na změnu architektury, aby to bylo možné?
- thunderbuff
- Člen | 164
Mám jednu globální databázi, která drží informace o uživatelích. A pak má každý uživatel svou databázi, která slouží pro ukládání jeho vlastních dat. Jelikož celkový objem dat se pomalu blíží k jednomu terabajtu, bylo by velmi obtížné držet data v jediné databázi. Důvodů pro oddělení je více, ale ten objem je hlavní.
Editoval thunderbuff (27. 8. 2015 15:34)
- David Matějka
- Moderator | 6445
Pokud bys tu factory nepsal rucne, ale pouzil generovanou tovarnu, tak se eventy napojeji.
Pokud je nutne napsat factory vlastni (jestli je slozitejsi), tak si bud
proste injectni EventManager a dispatchuj je rucne, nebo si nastav vsehny on*
(instance nejakyho Event
nebo co..) stejne jako to dela
kdyby/events (viz vygenerovany kontejner)