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 2 ďalšie rozšírenia,
composer require nettrine/orm
a
composer require symfony/cache
.
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:
doctrine.dbal: Nettrine\DBAL\DI\DbalExtension
doctrine.orm: Nettrine\ORM\DI\OrmExtension
doctrine.migrations: Nettrine\Migrations\DI\MigrationsExtension
doctrine.dbal:
connections:
default:
driver: pdo_mysql
host: %doctrine.host%
user: %doctrine.user%
password: %doctrine.password%
dbname: %doctrine.dbname%
doctrine.orm:
managers:
default:
defaultCache: Symfony\Component\Cache\Adapter\FilesystemAdapter(directory: %tempDir%/cache/doctrine/orm)
connection: default
mapping:
App:
directories: [%appDir%/Model]
namespace: App\Model
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.
Další čtení
- Ako predávať adresáre projektu registrovaným službám
- Nette Vite – použití Nette s Vite pro rychlý lokální vývoj
- Jak se verzuje Nette v době postmonolitické?
- S novou dokumentací Nette Database píšete bezpečnější kód
- Jedna řádka v konfiguraci zrychlí vaši Nette aplikaci. Jak je to možné?
- Architektura, která roste s vaším projektem
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