php – 如何在Doctrine2 / ZF2中使用Memcached?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何在Doctrine2 / ZF2中使用Memcached?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1575字,纯文字阅读大概需要3分钟。
内容图文
![php – 如何在Doctrine2 / ZF2中使用Memcached?](/upload/InfoBanner/zyjiaocheng/765/7527e6b572d443fc9da2965f5b45cb43.jpg)
我已经设置了本文中概述的代码/目录/配置:http://www.jasongrimes.org/2012/01/using-doctrine-2-in-zend-framework-2/
所以我的配置文件看起来像:
<?php
namespace Game;
return array(
// <snip>
// Doctrine config
'doctrine' => array(
'driver' => array(
__NAMESPACE__ . '_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
),
'orm_default' => array(
'drivers' => array(
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
)
)
)
),
);
现在,我需要设置/更改以使Doctrine使用Memcached作为其缓存后端?我在谷歌上搜索了很多,但除了在this question,它说它让它工作(但不是如何),我还没有找到任何东西.
解决方法:
我有一些麻烦让它工作,我只有一个临时的解决方法,因为我需要修改Doctrine ORM模块本身.
首先,将缓存设置为memcache:’cache’=> ‘array’,’cache’=> ‘memcache’,在你上面的配置中.
然后,定义服务工厂以创建memcache实例.您可以在模块类中执行此操作:
注意:此示例基于memcache,而不是memcacheD.但对于memcached应??该是一样的.
function getServiceConfig()
{
return array(
'factories' => array(
'memcache' => function(ServiceManager $sm) {
$memcache = new \Memcache(); // .. do some configuration and connect
return $memcache;
}
)
);
}
最后一步是修改Doctrine ORM模块.否则,它将不会创建实例并抛出错误.
在DoctrineModule / Service / CacheFactory.php中:l61:
$cache->setMemcache($options->getInstance());
变为:
$cache->setMemcache($sl->get($options->getInstance()));
(在你的情况下,为第64行执行此操作.)或者找到另一种方法将memcached实例注入$options.请注意,这应该只是一种解决方法,并尽快修复.否则,您将无法更新模块.
希望这可以帮助.
内容总结
以上是互联网集市为您收集整理的php – 如何在Doctrine2 / ZF2中使用Memcached?全部内容,希望文章能够帮你解决php – 如何在Doctrine2 / ZF2中使用Memcached?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。