Odkazy: dibi | API reference

Forum: [česky] [english]

dibi fórum

tiny ‘n’ smart
database layer

Nejste přihlášen(a)

#1 před 2 lety

Skic
Člen
Registrovaný: 14. 5. 2006
Příspěvky: 11

Jak serializovat objekt dibiFluent

Nevíte, jak nejlépe na serializaci dibiFluent? Celý objekt nelze serializovat, protože obsahuje instanci dibiConnection, která nedovoluje serializaci. Hledá řešení, jak nejlépe znovunačíst a vytvořit dibiFluent z uložených dat.

 

#2 před 2 lety

phx
Moderator
Registrovaný: 17. 4. 2008
Příspěvky: 879

Re: Jak serializovat objekt dibiFluent

Nevim zda je to mozny, ale mozna by slo mu vnitit zadny nebo nejaky fake DibiConnection, serializovat a pri deserializaci mu zase dat aktualni DibiConnection. Mozna by to byl vhodny FR.

 

#3 před 2 lety

Skic
Člen
Registrovaný: 14. 5. 2006
Příspěvky: 11

Re: Jak serializovat objekt dibiFluent

To je prvni moznost (ale nevim, o metodach, ktere by to umely)
Druha moznost je opacna, ziskat z dibiFluent objektu vsechna potrebna data (bez dibiConnection) a pak je tam zase zpatky „nahrat“, ale opet nevim o patricnych metodach.

 

#4 před rokem

basnik
Nový člen
Registrovaný: 30. 3. 2011
Příspěvky: 2

Re: Jak serializovat objekt dibiFluent

Prvni moznost (odstraneni a nasledne vlozeni DibiConnection) je mozna v PHP 5.3 pomoci ReflectionProperty, ale neni to asi uplne koser reseni. Druha moznost (ziskani ostatnich dat) opet ztroskota pri rekonstrukci objektu pomoci __wakeup → bylo by potreba nastavit privatni vlastnosti objektu (nejspise lze resit take pomoci Reflection, ale opet nic hezkeho…).

Asi nejlepsi by bylo, kdyby trida DibiFluent poskytla metody setConnection a getConnection, pripadne aby sama pri serializaci ze sebe dibiConnection odstranila a pri unserializaci opet doplnila.


Pravda bolí. Většinou toho, kdo ji řekne …

 

#5 před rokem

HosipLan
dibi guru
Registrovaný: 1. 6. 2009
Příspěvky: 2630

Re: Jak serializovat objekt dibiFluent

Mohl bych vědět proč to potřebuješ? Protože si myslím, že to nepotřebuješ :)


Neptej se, jestli se můžeš ptát | Blog | Twitter | GitHubCMS Kdyby

Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítáni

 

#6 před rokem

basnik
Nový člen
Registrovaný: 30. 3. 2011
Příspěvky: 2

Re: Jak serializovat objekt dibiFluent

Omlouvam se za zpozdeni, nemel jsem aktivovana upozorneni :)

Jde o nutnost preneseni dotazu v serializovanem objektu mezi nactenim stranek a predevsim do skriptu volaneho ajaxem.
Na dalsi strance potrebuji dotaz vratit v takovem tvaru, v jakem byl zadan.


Pravda bolí. Většinou toho, kdo ji řekne …

 

#7 před rokem

HosipLan
dibi guru
Registrovaný: 1. 6. 2009
Příspěvky: 2630

Re: Jak serializovat objekt dibiFluent

Ale na to přece není potřeba serializovat fluent.

class NejakyModel extends BaseModel
{

        public function findBy($criteria)
        {
                $q = $this->connection->select('*')->from('tabulka t');
                // ...
                if ($criteria->name) {
                        $q->where('t.name = %s', $criteria->name);
                }
                // ...
                if ($criteria->neco) {
                        $q->where('t.neco = %i', $criteria->neco);
                }

                return $q->fetchAll();
        }

        // ...
}

Výpís dat

$parametry = (object)array(); // ziskani parametru pro query
$uloziste->save($parametry); // uložení parametrů

$model = new NejakyModel();
$zaznamy = $model->findBy($parametry);

// výpis

Ajax

$parametry = $uloziste->load(); // načtení uložených parametrů

$model = new NejakyModel();
$zaznamy = $model->findBy($parametry);

// výpis

Neptej se, jestli se můžeš ptát | Blog | Twitter | GitHubCMS Kdyby

Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítáni

 

Zápatí