Ako použiť Doctrine ORM v Nette Frameworku
V tomto príspevku sa pokúsim napísať stručný návod ako použiť Doctrine ORM v Nette FW. Najviac rozšírená a odporúčaná integrácia Doctrine do Nette je Nettrine, udržiavaná je contributte tímom.
Konzolové rozšírenie
Pre správne používanie Doctrine potrebujeme balík symfony/console (pre
konzolové príkazy), nette integráciu môžeme nainštalovať cez composer
príkazom composer require contributte/console
, po nainštalovaní
toto rozšírenie zaregistrujeme do hlavného konfiguračného neon súboru.
extensions:
console: Contributte\Console\DI\ConsoleExtension(%consoleMode%)
Tiež je potrebné vytvoriť bin zložku a v nej console súbor s týmto obsahom a pridať súboru oprávnenia na spustenie.
Doctrine rozšírenia
Potrebujeme nainštalovať iba jedno ďalšie rozšírenie, pretože dbal,
cache a annotations budú nainštalované automaticky ako závislosti,
composer require nettrine/orm
.
Po úspešnej inštalácií potrebujeme zaregistrovať rozšírenia do neon
konfigurácie, najlepší spôsob je vytvoriť nový súbor
doctrine.neon
v konfiguračnej zložke (v ktorej by už mal byť
aj local.neon
do ktorého uložíme údaje k DB) a zahrnúť ho do
hlavného konfiguračného súboru (pravdepodobne config.neon alebo common.neon)
pridaním tohto na koniec súboru:
includes:
- doctrine.neon
Teraz potrebujeme zaregistrovať a nastaviť doctrine rozšírenia,
priložím ukážku nakonfigurovaného doctrine.neon
súboru
s pdo_mysql driverom.
extensions:
# Odkomentujte len ak používate anotácie namiesto php8 atribútov
# doctrine.annotations: Nettrine\Annotations\DI\AnnotationsExtension
doctrine.dbal: Nettrine\DBAL\DI\DbalExtension
doctrine.dbal.console: Nettrine\DBAL\DI\DbalConsoleExtension
doctrine.orm: Nettrine\ORM\DI\OrmExtension
doctrine.orm.attributes: Nettrine\ORM\DI\OrmAttributesExtension
doctrine.orm.cache: Nettrine\ORM\DI\OrmCacheExtension
# Odkomentujte len ak používate anotácie namiesto php8 atribútov
# doctrine.orm.annotations: Nettrine\ORM\DI\OrmAnnotationsExtension
doctrine.orm.console: Nettrine\ORM\DI\OrmConsoleExtension
doctrine.cache: Nettrine\Cache\DI\CacheExtension
doctrine.orm.attributes: # Ak používate stále anotácie, upravte na doctrine.orm.annotations
mapping:
App\Model: %appDir%/Model # Adresár kde sa začnú hľadať entity
doctrine.dbal:
debug:
panel: %debugMode%
connection:
driver: pdo_mysql
host: %doctrine.host%
user: %doctrine.user%
password: %doctrine.password%
dbname: %doctrine.dbname%
Posledná vec čo potrebujeme je pridať databázové údaje do nášho
local.neon
súboru.
parameters:
doctrine:
host: localhost
user: user
password: password
dbname: test
Od teraz je možné vytvárať entity a aktulizovať databázovú štruktúru s príkazom
bin/console orm:schema-tool:update --dump-sql --force
Tento príspevok je len jednoduchá ukážka, ak potrebujete pokročilé možnosti konfigurácie, nastavenia cache, migrácie, vlastné funkcie alebo typy stĺpcov, pozrite si Nettrine Dokumentáciu.
Komentáře
Díky za jednoduchý návod.
Super 🙂 chtělo by to pokračování 😉 … ve stejném duchu podrobněji popsat poslední odstavec 😉
@stulda, no neviem ako by som to nazval, ako pouzivat Doctrine a pisat cez Nettrine konfiguraciu je uz v dokumentaciach samotnych projektov, do jedneho blog clanku by sa vsetko nezmestilo, navyse niekto pouziva integer ID, niekto UUID, niekto zase PostgreSQL, velmi sa to vetvi. Mozno by som v buducnosti mohol viac popisat migracie a ako ich pouzivat, alebo nejaku zakladnu pracu s entitami a ako strukturovat skeleton v projekte.
Chcete-li odeslat komentář, přihlaste se