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 (RSS)
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