2012-04-28 67 views
2

我試圖建立學說sqlite的緩存Symfony的1.4與下面的代碼:如何檢查Doctrine 1.2 sqlite緩存是否工作?

$cacheConn = Doctrine_Manager::connection(new PDO('sqlite::memory:')); 
$cacheDriver = new Doctrine_Cache_Db(array('connection' => $cacheConn, 'tableName' => 'cache')); 
$cacheDriver->createTable(); 
$manager->setAttribute(Doctrine_Core::ATTR_QUERY_CACHE, $cacheDriver); 
$manager->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE, $cacheDriver); 
$manager->setAttribute(Doctrine_Core::ATTR_CACHE_LIFESPAN, 60 * 5); 
$manager->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE_LIFESPAN, 60 * 5); 

我沒有看到任何錯誤,但腳本執行時間保持完全一樣,沒有緩存。如何檢查緩存實際上工作?

回答

1

看起來好像你在請求之間沒有持久性。

爲了讓您的sqlite ::內存有效的下一個請求(S),你必須使用「持續性」

在內存中的SQLite有一定的侷限性。內存空間可能是請求,會話,但似乎沒有辦法記錄在用戶之間共享內存的基礎。 $ pdo = new PDO('sqlite :: memory:'); $ pdo = new PDO('sqlite :: memory:'); 並且您的基地將在下次請求時消失。

對於會話持久性:

$pdo = new PDO( 'sqlite::memory:', null, null, array(PDO::ATTR_PERSISTENT => true) );

來源:http://www.php.net/manual/en/ref.pdo-sqlite.connection.php

複印&從評論粘貼[在diple弗雷德裏克點glorieux點網]

+0

1爲援引源。 – 2013-04-26 09:00:30

相關問題