Contributte / Nettrine – integrace Doctrine do Nette
- Felix
- Nette Core | 1196
Contributte / Nettrine / Doctrine
Ve svete PHP existuje mnoho databazovych vrstev, ale jedna trochu vycniva svoji velikosti, funkcnosti a komunitou. Jedna se o Doctrine.
Do Nette sveta Doctrine kdysi privedl balicek Kdyby/Doctrine.
Posledni roky tu s mnoha lidmi z Contributte (a dalsimi), pracujeme na novejsi verzi, ktera je rozdelena do vice balicku, ma podporu poslednich PHP verzi, integrace do Tracy, podporu Symfony Console a snazime se vzdy pridat neco yummy navic.
Github: https://github.com/nettrine
Examples:
Roadmap
- Podpora pro Doctrine v3 (https://github.com/…te/issues/59)
- Podpora pro PHP 8.1
Balicky
Balicek | Doctrine | PHP |
---|---|---|
nettrine/dbal | doctrine/dbal | 7.2–8.0 |
nettrine/orm | doctrine/orm | 7.2–8.0 |
nettrine/migrations | doctrine/migrations | 7.2–8.0 |
nettrine/fixtures | doctrine/fixtures | 7.2–8.0 |
nettrine/cache | doctrine/cache | 7.2–8.0 |
nettrine/annotations | doctrine/annotations | 7.2–8.0 |
nettrine/extensions-knplabs | knplabs/doctrinebehaviors | 7.2–8.0 |
nettrine/extensions-atlantic18 | doctrine-extensions/doctrineextensions | 7.2–8.0 |
nettrine/extensions-beberlei | beberlei/doctrineextensions | 7.2–8.0 |
nettrine/extensions-oroinc | oroinc/doctrine-extensions | 7.2–8.0 |
nettrine/mongodb | mongodb/mongodb | 7.2–8.0 |
nettrine/odm | doctrine/mongodb-odm | 7.2–8.0 |
Feedback
Feedback je vitan. Jeste vic jsou vitane pull requesty.
- Chat idealne na Slacku (https://pehapkari.slack.com) v kanalu #contributte
- Issues na Githubu (https://github.com/nettrine)
- PR na Githubu (https://github.com/nettrine)
- dakur
- Člen | 493
Ahoj, díky za práci!
Měl bych otázku – v kdyby/doctrine
byl
EntityManager
. Zde vidím EntityManagerDecorator
a
v examplech potom vlastní implementaci entity manageru. Přímo v
nettrine/*
žádný není? V docs nevidím o EM žádnou
zmínku.
Edit: aha, teď koukám, že když z DI vytahuju
EntityManagerInterface
, tak to funguje. 😳🙂
Editoval dakur (4. 5. 2022 10:51)
- lukasnov
- Člen | 12
Ahoj, prosím Vás k nettrine asi používáte contributte/event-dispatcher? tam mám problém, že na kdyby/events to fungovalo, bez vytváření classy pro jednotlivý event a bez spuštění přes dispatcher, ale předpokládám, že pokud chci přejít, musít toto vytrpět, nebo to děláte nějak jinak? Díky
- lukasnov
- Člen | 12
Mám třeba v Listeneru: BaseManager:onCreate ⇒ logChangelog a pak mám UserManager::onCreate ⇒ sendEmail a v kdyby/events mám jen v BaseManageru:
function save($entity)
{
$this->em->persist + flush
$this->onCreate($entity);
}
a jestli to chápu dobře, tak to musím přepsat na
function save($entity)
{
$this->em->persist + flush
$this->eventDispatcher->dispatch(new BaseCreatedEvent($entity));
}
tu pak UserManagorovi podědit a udělat
function save($entity)
{
parent::save($entity);
$this->eventDispatcher->dispatch(new UserCreatedEvent($entity));
}
nebo by to šlo u BaseCreateEventu přes if $entity::class === User::class kontrolovat
Ale nějak se mi to nezdá, tak zjištuju jestli neexistuje lepší způsob 🙂