Nette 2.2 s ORM Doctrine 2 nebo NDBT
- ondraondra81
- Člen | 82
Ahoj,
Jdu vytvářet nový projekt a asi bych rád zkusil Doctrine 2. Nicméně vše co jsem našel a přečetl je krásné a proto bych to chtěl zkusit, ale většina článků je 2 roky stará, navíc se většina z nich zabývá přímo D2 ale nějaký smysluplný návod jak D2 integrovat do Nette jsem nanašel.
Jde mě o to co dát do config.neon a co do bootstrap.
Dále bych potřeboval kdyby mě někdo ve zkratce řekl jaký je rozdíl mezi KDYBY\Doctrine https://github.com/Kdyby/Doctrine pripadne Nella\Doctrine http://doc.nellafw.org/cs/doctrine a Doctrine http://www.doctrine-project.org/
nebo je Doctrine hloupý nápad a mám se držet NDBT?
- jiri.pudil
- Nette Blogger | 1032
Kdyby\Doctrine nabízí právě pohodlnou integraci Doctrine do Nette. Určitě si projdi dokumentaci, je tam pěkně popsané, jak na to. Případné dotazy pak můžeš směřovat rovnou do Kdyby fóra.
- iguana007
- Člen | 970
Ohledně rozdílu:
https://packagist.org/…lla/doctrine
This package is abandoned and no longer maintained. The author suggests using the kdyby/doctrine package instead.
- Tomáš Votruba
- Moderator | 1114
@ondraondra81 Doctrine je skvělý nápad, má široký ekosystém v zahraničí i u nás. Kdyby\Doctrine jak píše Jirka pro začátek postačí. Rozšiřující zdroje najdeš na Awesome Doctrine.
- ondraondra81
- Člen | 82
OK přidal jsem do composeru „kdyby/doctrine“
Do config.neon jsem pridal
extensions:
# add theese four lines
console: Kdyby\Console\DI\ConsoleExtension
events: Kdyby\Events\DI\EventsExtension
annotations: Kdyby\Annotations\DI\AnnotationsExtension
doctrine: Kdyby\Doctrine\DI\OrmExtension
a ted nevim :)
v návodu je
doctrine:
user: root
password: pass
dbname: sandbox
metadata:
App: %appDir%
jinde zase:
parameters:
database:
driver: pdo_mysql
host: localhost
dbname: test
user:
password:
charset: utf8
collation: utf8_czech_ci
doctrine:
connection: %database%
console: true
migrations:
connection: @doctrine.connection
services:
database: @doctrine.entityManager
abych se priznal ten druhy se me zamlouvá více, navíc je z něj patrná
i použitá DB a host.
co netuším je k čemu je migrations. Co je správně
pro Kdyby?
Musím nějak konfigurovat Kdyby/Events, Kdyby/Console and Kdyby/Annotations. ?
a poslední dotaz: Musím dědit Entitu od \Kdyby\Doctrine\Entities\BaseEntity ?
- mrtnzlml
- Člen | 140
ondraondra81 napsal(a):
…ale většina článků je 2 roky stará, navíc se většina z nich zabývá přímo D2 ale nějaký smysluplný návod jak D2 integrovat do Nette jsem nanašel…
Stále (i do budoucna) aktuální článek: http://www.zeminem.cz/…tej-doctrine
Je to psáno tak, aby ten kdo dělá s NDBT dokázal přebruslit velmi
pohodlně… (-:
V konfiguraci většinou úplně stačí toto:
doctrine:
user: root
password: ""
dbname: nazevdb
Driver a ostatní věci tam můžeš naspat, ale je to zbytečně navíc…
Musím nějak konfigurovat Kdyby/Events, Kdyby/Console and Kdyby/Annotations?
Ne.
Musím dědit Entitu od \Kdyby\Doctrine\Entities\BaseEntity?
Ano. Tak prý ne… :-)
Editoval mrtnzlml (27. 8. 2014 13:56)
- David Matějka
- Moderator | 6445
Musím dědit Entitu od \Kdyby\Doctrine\Entities\BaseEntity ?
ne. ta entita pouze pridava nejakou magii… viz anotace
Editoval matej21 (27. 8. 2014 13:55)
- ondraondra81
- Člen | 82
jeste se zeptám.
musím používat to @ORM
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="Users")
*/
class User extends Entities\BaseEntity
// ....
/**
* @ORM\column(type="string")
*/
nebo můžu jen
/**
* @Entity
* @Table(name="Users")
*/
class User extends Entities\BaseEntity
// ....
/**
* @column(type="string")
*/
Editoval ondraondra81 (27. 8. 2014 16:20)
- jiri.pudil
- Nette Blogger | 1032
Doctriní anotace jsou reprezentované třídami a platí pro ně stejná
pravidla, jako kdybys s názvem té třídy pracoval kdekoliv jinde v kódu.
Proto tam je ostatně to use Doctrine\ORM\Mapping as ORM;
. Kdybys
je chtěl používat bez ORM, musel bys uvést v use
každou
použitou anotaci zvlášť.
- David Matějka
- Moderator | 6445
melo by to jit pomoci setDefaultAnnotationNamespace, ale radeji pouzivam tu verzi s
use
:)