vnořená cache: Array to string conversion

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

Zdravím, mám problém s cache pokud vnořím cache do cache jako např.:

{cache id1}
<div>
   <div n:cache="id2a">lolo</div>
   <div n:cache="id2b">koko</div>
</div>
{/cache}

Vraci mi to ‚Array to string conversion‘. Na Nette/Caching/Cache.php:177 je funkci array_unique() předáván seznam závislích bloku $dp[self::ITEMS] jako vícerozměrné pole.

Nevím kde může být chyba, nebo co dělám špatně. Zkouším to na základním Nette projektu. Nesetkal se s tímto problémem už někdo?

PHP 5.4.6, Nette 2.0.7 i 2.1_dev

michal.lohnisky
Člen | 64
+
0
-

Mě to hlásí stejnou chybu.

Michalek
Člen | 211
+
0
-

Chyba asi bude v potřebě používat vnořenou cache?

enumag
Člen | 2118
+
0
-

To asi bude bug. Kde přesně vyskočí ta chyba? Na tom řádku 177 to asi nebude.

@Michalek: I kdyby tak by to mělo hodit inteligentnější výjimku dle mého názoru.

Editoval enumag (11. 12. 2012 16:52)

phebix
Člen | 3
+
0
-

tady je cela chybova stranka

Jinak jeste jsem to vyzkousel na verzi 0.8 a tam to funguje, tak si myslim ze to bude nejakej bug.

@Michalek: Co je spatneho na pouzivani vnorene cache a navic v dokumentaci je uvedeno „Značky {cache} lze vnořovat do sebe, a když se vnořený blok zneplatní (například tagem), zneplatní se i blok nadřazený.“

enumag
Člen | 2118
+
0
-

Zkus ten řádek 177 změnit na tohle a řekni zda to funguje:

$dp[self::ITEMS] = array_unique((array) $dp[self::ITEMS], SORT_REGULAR);

Editoval enumag (17. 12. 2012 12:52)

phebix
Člen | 3
+
0
-

jo tak takhle to funguje … dik