Pogledajte određenu poruku
Staro 12. 04. 2010.   #2
LiquidBrain
Milan Cvejic
Wrote a book
 
Avatar LiquidBrain
 
Datum učlanjenja: 05.09.2006
Lokacija: Beograd
Poruke: 1.241
Hvala: 32
73 "Hvala" u 56 poruka
LiquidBrain će postati "faca" uskoro
Pošaljite poruku preko Yahoo za LiquidBrain
Default

Citat:
Originalno napisao djomla_db Pogledajte poruku
Zdravo!

Muci me jedan problem pa ako moze neko da pomogne ko ima slicnih iskustava.

Vec dugo radim sve svoje projekte sa ADODB active record klasama. U zadnje vreme dosta sam citao doctrine i vidim da za razliku od pocetaka sad je dosta bogatiji sa featurima i dokumentacijom. Pa sam poceo da projektujem CMS ponovo ali sa Doctrinom. Mogu rec, elegantno se postavi ali dosao sam do problema prvog i za sada najgoreg (cak razmisljam da je batalim). Problem su njeni 'behavior'i, da budem precizniji i18n (pretpostavljam da se ovo odnosi na svaki). Potrebna mi je lokalizacija na bilo koji jezik i to se radi sa doctrinom tako sto se kaze actAs: I1i8n odabere se polje i stvar 'resena'.

E, al to meni ne odgovara (tvrdoglav) hocu da bude kako ja 'ocu a ne kako neko drugi to kaze. Zelim da bude i18n oznake tablica i klasa. I kaze meni doctrina (tacnije otvorim klasu i vidim koje parametre prima)

actAs: I18n
className: '%CLASS%i18n' => kaze da klase imaju taj i taj prefix
tableName: '%TABLE%i18n' => odlicno ovako mi i treba a ne kako oni hoce to od mene da bude _translation.

posto radim na postojecim tablicama i bazom recimo da mi se tablica zove pages a druga je pagesi18n

e sad ja generisem modele na osnovu tablice i to fino ne radi. (mogu cak i da dam kod ovde)

Kôd:
class Pages extends BasePages
{

        $this->actAs('I18n', array(
                'fields' => array('title'),
                'className' => '%CLASS%i18n',
                'tableName' => '%TABLE%i18n'
            )
        );
    }
I baca gresku konstatno da fali title i sl. Izludjuje pomalo.

Kod AdoDBa samo mozda malo vise programirao ali brate imao sam skoro potpunu kontrolu nad skoro svime. Ne znam sta mi to revolucionarno pruza koriscenje Doctrine ili bilo kojeg hard core ORMa (ovo bi bilo drugo pitanje).
kod ti nije dobar,
Prvo actAs metod treba da se zove iz setUp metode, dakle nesto kao:
Kôd:
class Pages extends BasePages
{

        public function setUp()
        {
            parent::setUp();

            $this->actAs('I18n', array(
                'fields' => array('title'),
                'className' => 'Pagesi18n',
                'tableName' => 'pagesi18n'
              ));
    }
Ne znam zasto koristish %CLASS% i %TABLE% svakako ti se ovaj kod ne generise automatski, pa mozes i da upishesh ime...

Daj base klasu da vidimo dal tu fali nesto od polja...

Pozz
__________________
http://weevify.com
LiquidBrain je offline   Odgovorite uz citat