Jak jsem zkoušel serializovat SimpleXML

Školení, která pořádám

Potřeboval jsem si do cache uložit část souboru zpracovaného pomocí SimpleXML. Jeho objekty ale bohužel nejdou serializovat, takže jsem postupně vyzkoušel jiná řešení. Jako první mě napadlo uložit celý stažený soubor, to se mi ale zdálo nehospodárné, protože ze souboru se využije jen jeho malá část. Stejně tak jsem zavrhl uložit výsledek metody asXML, aby se XML nemuselo znovu a znovu parsovat. Přesto jsem ale vyzkoušel několik dalších postupů:

Screencast

Jaký jsem si z toho udělal závěr? Asi jsem moc velký perfekcionalista, protože už druhé řešení bylo funkční a já ho přesto zahodil. Ale hlavně asi někdy rychleji píšu, než přemýšlím.

Kód jsem psal v editoru SciTE, nahrávku jsem vytvořil v aplikaci Wink.

Jakub Vrána, Řešení problému, 13.10.2010, diskuse: 6 (nové: 0)

Diskuse

ikona David Grudl:

Vždyť XML je serializace, tak jak serializovat objekt jinak, než přes asXml()? A že se to musí parsovat přece nevadí, žádnou neparsovanou serializaci PHP neumí (možná memcached, ale to fakt nevím).

ikona Jakub Vrána OpenID:

Ono to bylo ještě trošku složitější o to, že v cyklu byla podmínka – braly se jen první čtyři položky. Ale jinak máš pravdu.

Neparsovanou serializaci nabízí funkce var_export(). Resp. při použití akcelerátoru se parsuje jen jednou. Ta se SimpleXML použít také nejde.

fos4:

Což použít json_encode ?

HosipLan:

to je "zápis myšlenky originálním způsobem" nebo reklama na SciTE? :)
PS. umí to pěkně pracovat s poli

ikona Jakub Vrána OpenID:

Jde o zápis myšlenky, tahle forma mi přišla pro tuto příležitost nejvhodnější.

Reklamu na SciTE dělám jaksi mimochodem u všech svých vystoupení. Ale v rámci objektivity musím říct, že mi tam chybí dvě zásadní věci:

1. Prohlížeč souborů v postranním panelu. Dodělat ho by asi bylo celkem jednoduché, ale já bych to se svými znalostmi C++ dělal tak týden a nikomu jinému se do toho nechce.

2. Napovídání uživatelských funkcí a především metod objektů.

Lokavidu:

krasny video, diky

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.