Witam,

nie wiem, czy dobrze zatytuowalem watek smile.gif. Kiedys robilem jakies projekty z uzyciem ZF i Doctrine1, niemniej skoro wychodza nowsze wersje to czemu z nich nie korzystac?

Udalo mi sie zintegrowac framework i Doctrine'a, narysowalem schemat bazy, wygenerowalem sqla, wgralem do bazy danych i chce teraz wygenerowac modele (chyba, ze to sie w nowym Doctrine inaczej nazywa). Producent dostarcza fajne konsolowe narzedzie do generowania wielu potrzebnych rzeczy, wiec przebrnalem przez dokumentacje i.. do dziela:)

Struktura mojej aplikacji:
CODE
aplikacja/
-config/
-data/
-models/ <- tu chce wygenerowac sobie pliki
--generated/
-module/
-public/
-vendor/


Skonfigurowalem oczywiscie sciezki.

Co chce zrobic? Wygenerowac modele na podstawie bazy danych.
CODE
C:\xampp\htdocs\aplikacja\vendor\bin>doctrine-module orm:convert-mapping --from-database annotation models/generated
Processing entity "Administrator"
Processing entity "Album"
Processing entity "Carrier"
Processing entity "CarrierImage"
Processing entity "CarrierLine"
Processing entity "Configuration"
Processing entity "Line"
Processing entity "Restriction"
Processing entity "Ride"
Processing entity "RideRestriction"
Processing entity "RideStop"
Processing entity "Stop"

Exporting "annotation" mapping information to "C:\xampp\htdocs\aplikacja\models\generated"

C:\xampp\htdocs\aplikacja\vendor\bin>doctrine-module orm:generate-entities models
No Metadata Classes to process.

C:\xampp\htdocs\aplikacja\vendor\bin>doctrine-module orm:generate-entities models/generated
No Metadata Classes to process.


Trzecie polecenie wydalem tylko i wylacznie zeby sprawdzic, czy moze w ten sposob sie uda wygenerowac potrzebne pliki. Podobna sytuacja ma miejsce, gdy mapuje do yamla lub xmla. Natomiast w przypadku mapowania do php sprawa wyglada tak:


CODE
C:\xampp\htdocs\aplikacja\vendor\bin>doctrine-module orm:convert-mapping --from-database php models/generated
Processing entity "Administrator"
Processing entity "Album"
Processing entity "Carrier"
Processing entity "CarrierImage"
Processing entity "CarrierLine"
Processing entity "Configuration"
Processing entity "Line"
Processing entity "Restriction"
Processing entity "Ride"
Processing entity "RideRestriction"
Processing entity "RideStop"
Processing entity "Stop"

Exporting "php" mapping information to "C:\xampp\htdocs\aplikacja\models\generated"

C:\xampp\htdocs\aplikacja\vendor\bin>doctrine-module orm:generate-entities models
PHP Notice: Undefined variable: metadata in C:\xampp\htdocs\aplikacja\models\generated\Administrator.php on line 5

Notice: Undefined variable: metadata in C:\xampp\htdocs\aplikacja\models\generated\Administrator.php on line 5
PHP Fatal error: Call to a member function setInheritanceType() on a non-object in C:\xampp\htdocs\aplikacja\models\generated\Administrator.php on line 5

Fatal error: Call to a member function setInheritanceType() on a non-object in C:\xampp\htdocs\aplikacja\models\generated\Administrator.php on line 5

C:\xampp\htdocs\aplikacja\vendor\bin>doctrine-module orm:generate-entities models/generated
PHP Notice: Undefined variable: metadata in C:\xampp\htdocs\aplikacja\models\generated\Administrator.php on line 5

Notice: Undefined variable: metadata in C:\xampp\htdocs\aplikacja\models\generated\Administrator.php on line 5
PHP Fatal error: Call to a member function setInheritanceType() on a non-object in C:\xampp\htdocs\aplikacja\models\generated\Administrator.php on line 5

Fatal error: Call to a member function setInheritanceType() on a non-object in C:\xampp\htdocs\aplikacja\models\generated\Administrator.php on line 5



Cos poszlo nie tak smile.gif pytanie: co? Googlowalem, ale nie spotkalem sie raczej z problemem takim jak ten drugi, natomiast co do pierwszego znalazlem rozwiazanie wymagajace modyfikacji w bibliotece doctrine'a co uwazam za troche pozbawione sensu...

Byc moze robie cos zle, byc moze w nowym Doctrine trzeba wygenerowac cos jeszcze - robilem to "na czuja" - chcialem uzyskac strukture analogiczna, jak w starym Doctrine...

Edit2: poradzilem sobie ;] kwestia skonfigurowania dla aplikacji/modulu odpowiedniej sciezki w pliku z configiem. Ponizej przyklad mojego configu:
CODE
<?php

return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => array(
'host' => 'localhost',
'user' => '*****',
'password' => '*****',
'dbname' => 'baza',
)
)
),
'driver' => array(
'orm_default' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\XmlDriver',
'paths' => array(__DIR__ . '/../../models/generated') //sciezka do katalogu w ktorym mamy zapisane mapowania z DB
),
'auto_mapping' => true
),
),
);

Po odpaleniu orm:generate-entities models wszystko sie pieknie wygenerowalo smile.gif

Bardzo prosze admina aby przyznal mi punkt, w koncu sam sobie pomoglem ;p