Ok, what I do, I write here step by step.

I have re-downloaded ZF 1.7. I removed everything under TEMP_DIR folder. I
removed every single localhost cookie.

I commented $cache->start(); line and uncommented
Zend_Translate::setCache($cache); line. And I have entered main page.
Everything looks very fine (while not cache hitting) and I have a file
zend_cache--zend_translate_full_csv_file_path filled with correct
translation table, serialized under temp dir next to some small metadata
files.

Then I removed again cookies and everything under temp dir. I comment
translate cache and uncomment $cache->start(). There is no cache hit as
expected. I do have fetched output in a file named zend_cache--someMd5 but i
do not have any cache file about zend_translation under temp dir as
expected.

I only remove cookies, leaving temp dir as it is. There is cache hit as
expected and response time is 19ms (wow, here i adore ZF).

I check cookies (well there is none as cache hits), remove files under temp
folder. I uncomment both of them. Enter the mainpage. What i have under temp
dir is a file named zend_cache--zend_translate_full_csv_file_path. And guess
what is inside? Fetched and serialized html output of page! :)

Yes, there is no any other file bigger than 1 kb. under temp.

Bug?

---------- Yönlendirilmiş ileti ----------
From: "Thomas Weidner" <[EMAIL PROTECTED]>
To: <[email protected]>
Date: Thu, 20 Nov 2008 07:34:19 +0100
Subject: Re: [fw-general] $cache->start() and caching with Zend_Translate
together, possible bug?
Sorry, but on the first look this seems to be a cache problem and not a
translation one.
Looking at the lines you provide I see that at line 435 the cache is
loaded...
$result = self::$_cache->load($id);
which happens without problems.

And then the cache is unserialized.
unserialize($result);
All translate classes are serializing the data before writing to cache so
this can not be a problem.

In my opinion there are only 4 things which can corrupt this behaviour.

1.) You are using an outdated cache after an update of ZF
2.) Someone writes manually to the translation cache without serializing the
data
3.) Someone uses own written adapter which corrupt the cache
4.) You have a corrupted ZF version... try a update to fix the broken files

Of course it could be that there is a problem in Zend_Cache itself, but I
dont believe this, because your problem is thrown in unserialize. Why should
Zend_Cache change the stored data. And Zend_Translate stores only serialized
strings.

Greetings
Thomas Weidner, I18N Team Leader, Zend Framework
http://www.thomasweidner.com


2008/11/20 kirpit <[EMAIL PROTECTED]>

> Hi ZF people.
>
> I have following lines in bootstrap with ZF v1.7 running on php 5.2.6:
>
> ---------------------------------------->
>
> $cache = Zend_Cache::factory('Page', 'File', array(
>  'lifetime' => 60 * 60 * 12,
>  'regexps' => array(
>   // cache whole indexController
>   '^' . BASE_PATH . '$' => array(
>   'cache' => true),
>   // cache whole indexController
>   '^' . BASE_PATH . 'index' => array(
>   'cache' => true),
>   // cache whole iController
>   '^' . BASE_PATH . 'i/' => array(
>   'cache' => true),
>   // cache ajax/get-suggest
>   '^' . BASE_PATH . 'ajax/get-suggest' => array(
>   'cache' => true,
>   'cache_with_get_variables' => true,
>   'cache_with_session_variables' => true,
>   'cache_with_cookie_variables' => true,
>   'make_id_with_get_variables' => true,
>   'make_id_with_session_variables' => false,
>   'make_id_with_cookie_variables' => false))), array(
>  'cache_dir' => TEMP_DIR));
> $cache->start();
>
> // ... more later
>
> Zend_Translate::setCache($cache);
> $translate = new Zend_Translate('csv', DOC_ROOT . 'language' . DS .
> 'tr_TR.csv', 'tr_TR');
> Zend_Registry::set('Zend_Translate', $translate);
>
> ---------------------------------------->
>
> And it produces following errors:
>
> Warning: unserialize() expects parameter 1 to be string, array given in
> ...\Zend\Translate\Adapter.php on line 436
>
> Notice: No translation for the language 'tr_TR' available. in
> ...\Zend\Translate\Adapter.php on line 307
>
> Notice: No translation for the language 'tr_TR' available. in
> ...\Zend\Translate\Adapter.php on line 307
>
> Notice: No translation for the language 'tr_TR' available. in
> ...\Zend\Translate\Adapter.php on line 307
>
> When I comment one of the cache feature, either $cache->start()
> or Zend_Translate::setCache($cache); everything looks fine. I have found
> similar bug below link but it says it is fixed already:
> http://framework.zend.com/issues/browse/ZF-3930
>
> Could be a bug?
>
>
>

Reply via email to