如何检查Doctrine 1.2 sqlite缓存是否正常工作?

时间:2012-04-28 10:42:29

标签: symfony-1.4 doctrine-1.2

我正在尝试使用以下代码在Symfony 1.4中设置doctrine 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 个答案:

答案 0 :(得分:1)

您似乎没有请求之间的持久性。

要使sqlite :: memory对下一个请求有效,您必须使用“persistency”

  

在内存中,sqlite有一些限制。内存空间可以是请求,即会话,但似乎无法记录在用户之间共享内存中的基础。

     

对于请求,请使用代码打开您的基础   $ 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

复制&从[frederic dot glorieux在diple dot net]的评论粘贴