我要暂停一个论坛的类别列表。
我有这个错误:ContextErrorException: Notice: apc_fetch(): Unexpected end of serialized data in C:\wamp\www\project\vendor\doctrine\cache\lib\Doctrine\Common\Cache\ApcCache.php line 40
控制器:
<?php
namespace Acme\ForumBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Doctrine\Common\Cache\ApcCache;
class DefaultController extends Controller
{
public function sidebarAction($slug = null)
{
$cache = new ApcCache;
if($cache->contains('ListOfCategories')) {
$categories = $cache->fetch('ListOfCategories');
} else {
$categories = $this->getDoctrine()
->getManager()
->getRepository('AcmeForumBundle:Category')
->getCategories();
$cache->save('ListOfCategories', $categories, 500);
}
return $this->render('AcmeForumBundle:Block:sidebar.html.twig', array(
'slug' => $slug,
'categories' => $categories
));
}
}
我的config.yml:
# Doctrine Configuration
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
# if using pdo_sqlite as your database driver, add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
query_cache_driver: apc
metadata_cache_driver: apc
对于这一行:metadata_cache_driver: apc
我不确定是否需要。
我的APC配置:
[APC]
apc.enabled = 1
apc.shm_size = 256M
apc.max_file_size = 5M
apc.stat = 1
我做错了什么?
PS:正确安装了APC,phpinfo();确认
由于
答案 0 :(得分:0)
我找到了另一种方式:
config.yml
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
metadata_cache_driver: apc
result_cache_driver: apc
query_cache_driver: apc
存储库:
<?php
namespace xxxxxx\ForumBundle\Entity;
use Doctrine\ORM\EntityRepository;
/**
* CategoryRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class CategoryRepository extends EntityRepository
{
public function getCategories() {
$q = $this->createQueryBuilder('c')
->orderBy('c.weight', 'ASC');
$query = $q->getQuery();
$query->useResultCache(true, 300, 'list_of_categories');
return $query->getResult();
}
}
并删除所有&#34; apc line&#34;在控制器中