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.
 
			 
			 
			
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