Serializace + unserializace objektu Mail

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
VasekPurchart
Člen | 20
+
0
-

Ahoj, nerozumím tomu, proč tento kód vyhazuje vyjímku:

$mail = new Mail;
$serializedMail = serialize($mail);
$pMail = unserialize($serializedMail);

Vyjímku to vyhodí u metody __wakeup v třídě Component:

Line 357:        /**
Line 358:         * Prevents unserialization.
Line 359:         */
Line 360:        final public function __wakeup()
Line 361:        {
Line 362:            throw new NotImplementedException;
Line 363:        }

Přitom podle https://api.nette.org/…il.Mail.html rozhodně nemá Mail s Component nic společného…?

A ještě bych se chtěl zeptat proč je to vlastně v Component vůbec zakázáno?

Editoval manik (24. 2. 2010 14:59)

Mikulas Dite
Člen | 756
+
0
-

Výjimka v tomhle místě tušim že vyskakuje když máš komponentu špatně registrovanou, nebo nějakou voláš ve špatnou chvíli. Zkontroluj si, že máš render až nakonec.

VasekPurchart
Člen | 20
+
0
-

No bylo to tím, že v mailu byla připojená template a tím pádem i presenter a tam vznikla ta chyba.
Stačilo jen neukládat obsah jako template, ale přetypovat na string.