Nette a Doctrine ORM

Díky rozšíření Kdyby/Doctrine je implementace Doctrine ORM do frameworku Nette snadná.

Instalace

Do existujícího projektu Nette nainstalujeme rozšíření kdyby/doctrine a kdyby/events:

$ composer require kdyby/doctrine
$ composer require kdyby/events

V souboru konfigurace Nette (config.neon) nainstalované rozšíření zaregistrujeme v sekci extensions:

extensions:
    console: Kdyby\Console\DI\ConsoleExtension
    events: Kdyby\Events\DI\EventsExtension
    annotations: Kdyby\Annotations\DI\AnnotationsExtension
    doctrine: Kdyby\Doctrine\DI\OrmExtension

a uvedeme alespoň minimální nastavení pro rozšíření doctrine:

doctrine:
    user: root
    password: password
    dbname: nazev_databaze
    metadata:
        App: %appDir%

(Sekce metadata nastavuje mapování – klíč je název namespace (App) a hodnota je výchozí adresář s třídami.)

Entity

Vytvoříme první entitu:

<?php

namespace App;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class Article
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
     */
    protected $id;

    /**
     * @ORM\Column(type="string")
     */
    protected $title;

}

V příkazové řádce ověříme, že je Doctrine console funkční:

$php ./www/index.php

Zjistíme, za o naší nové entitě Article ví:

$ php ./www/index.php orm:info

a můžeme aktualizovat schéma databáze.

Schéma databáze

Vytvoření schéma databáze:

php ./www/index.php orm:schema-tool:create

Další příkazy pro práci v Doctrine consoli.

Zdroje

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *