如何使用主义2和zend框架2中的缓存?

2024-03-17

请我在这里需要一些帮助,我已经搜索了很多但没有结果:/ 我如何利用查询及其存储在memcache中的结果,我正在使用zend框架2和学说2?这是我在 module.config.php 中的配置:

 // Doctrine config
     'doctrine' => array(
        'driver' => array(
            __NAMESPACE__ . '_driver' => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
            ),
            'orm_default' => array(
                'drivers' => array(
                    __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
                ),
        )
            ),
            /***** enabling the memcache ****/
            'configuration' => array(
                'orm_default' => array(
                    'metadata_cache'    => 'mycache',
                    'query_cache'       => 'mycache',
                    'result_cache'      => 'mycache',

            )
            /**** end ****/
        )
    ),

    'service_manager' => array(
        'factories' => array(
            'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
            'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
            'doctrine.cache.mycache' => function ($sm) {
                 $cache = new \Doctrine\Common\Cache\MemcacheCache();
                 $memcache = new \Memcache();
                 $memcache->connect('localhost', 11211);
                 $cache->setMemcache($memcache);
                 return $cache;
         },
        ),
    ),

任何想法或链接表示赞赏,谢谢。 问候。


我想你正在使用教义模块 https://github.com/doctrine/DoctrineModule, 正确的? 将您的配置更改为:

// Doctrine config
'doctrine' => array(
    'driver' => array(
        __NAMESPACE__ . '_driver' => array(
            'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
            'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
        ),
        'orm_default' => array(
            'drivers' => array(
                __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
            ),
        ),
    ),
    /***** enabling the memcache ****/
    'configuration' => array(
        'orm_default' => array(
            'metadata_cache'    => 'memcache',
            'query_cache'       => 'memcache',
            'result_cache'      => 'memcache',
        )
    ),
    /**** end ****/
    'cache' => array(
        'memcache' => array(
            'instance' => 'doctrine.cache.mycache',
        ),
    ),
),

'service_manager' => array(
    'factories' => array(
        'doctrine.cache.mycache' => function ($sm) {
            $cache = new \Doctrine\Common\Cache\MemcacheCache();
            $memcache = new \Memcache();
            $memcache->connect('localhost', 11211);
            $cache->setMemcache($memcache);
            return $cache;
        },
    ),
),

这是如何运作的?

模块配置中是每个受支持的缓存适配器的预定义配置,包括内存缓存 https://github.com/doctrine/DoctrineModule/blob/master/config/module.config.php#L36。通过此配置,您可以说“使用 memcache 进行缓存”:

'configuration' => array(
    'orm_default' => array(
        'metadata_cache'    => 'memcache',
        'query_cache'       => 'memcache',
        'result_cache'      => 'memcache',
    )
),

此缓存需要配置 Memcache 实例,并且此配置显示“Memcache 实例在 ServiceManager 中可用,密钥为‘doctrine.cache.mycache’”

'cache' => array(
    'memcache' => array(
        'instance' => 'doctrine.cache.mycache',
    ),
),

Update:

如何使用结果缓存(文档 http://doctrine-orm.readthedocs.org/en/latest/reference/caching.html):

$cache = $entityManager->getConfiguration()->getResultCacheImpl();
$cacheItemKey = 'my-item';

// test if item exists in the cache
if ($cache->contains($cacheItemKey)) {
    $item = $cache->fetch($cacheItemKey); // retrieve item from cache
} else {
    $item = $repository->find($id); // retrieve item from repository
    $cache->save($cacheItemKey, $item); // save item to cache
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用主义2和zend框架2中的缓存? 的相关文章

  • 合并 csv 文件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 PHP 或 joomla 中将多个 CSV 文件合并为一个 csv 文件 将文件夹中 csv 文件中的所有数据合并到文本文件中 通
  • curl 无法获取网页内容,为什么?

    我正在使用curl 脚本转到链接并获取其内容以进行进一步操作 以下是链接和curl脚本
  • 从 json 数组获取值并执行 sql 插入

    这是我的数组 json 1 Device ID a9a3346be4375a92 Date 2012 05 31 Time 15 22 59 Latitude 51 4972912 Longitude 0 1108178 2 Device
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • 未找到“MongoId”类(带有 MongoDB Doctrine 的 Zend 框架)

    我目前正在尝试将 MongoDB 与 ZendFramework 中的 Doctrine 集成 我做了很多教程 在 StackOverflow 或其他地方 但没有任何效果 我一步步按照教程进行操作 http www bigwisu com
  • Symfony 学说错误“DoctrineMigrationsBundle 需要启用 DoctrineBundle。”

    我创建了一个新的 Symfony 项目 并且不断收到此消息 DoctrineMigrationsBundle 需要启用 DoctrineBundle 错误并且无法摆脱它 显然我是这个星球上唯一一个收到此错误的人 因为谷歌并没有太大帮助 在
  • Laravel 5.6 - 注册表无法正常工作并且不显示任何错误

    在我最近的一个项目中 定制登记表不管用 当我单击注册按钮时 它会重新加载注册表单 不会打印任何错误 并且不会将数据插入数据库中 这是注册表的外观 这里是移民文件代码 public function up Schema create user
  • NSURLCache 不缓存

    我正在使用 Xcode 6 1 6A1030 iOS7 和 iOS8 模拟器 NSURLCache 似乎没有缓存任何东西 我使用 Cache Control 标头 我的服务器返回带有 max age 6000 的 Cache Control
  • 对更改运行 PHPUnit 测试

    每当磁盘上的文件发生更改时 我想运行 PHPUnit 测试 或至少其中的一个子集 与您可以使用 进行的操作非常相似 咕噜手表 https github com gruntjs grunt contrib watch blob master
  • Lumen 微框架 => php artisan key:generate

    我正在尝试 PHP 微框架 Lumen 来自 Laravel 我的第一步就是调查 env example文件并复制一份以供我使用 env文件 就像 Laravel 中一样 有一个变量 APP KEY 现在我尝试了简单的命令php artis
  • 如何让Symfony2直接加载CSS、JS文件而不是通过PHP?

    老问题 请参阅下面的更新版本 我的开发环境不是最快的 每个 PHP 请求大约需要 500 毫秒 它开始成为 Symfony2 资源文件的问题 因为每个资源文件都是通过 Symfony 的内部控制器请求的 http localhost myp
  • 从文本文件 PHP 读取数据

    我只是想知道如何在 php 中读取文本文件 我想让它显示文本文件中的最后 200 个条目 每个条目都在一个新行上 Like John White Jane Does John Does Someones Name 等等 Thanks Use
  • 将自定义参数传递给 Symfony2 中的自定义 ValidationConstraint

    我正在 Symfony2 中创建一个表单 表格只包含一个book字段允许用户在列表中进行选择Books实体 我需要检查是否选择了Book属于Author我的控制器里有 public class MyFormType extends Abst
  • 使用 Flot、html、PHP 和 MySql 查询绘制多个图表

    我正在尝试使用 Flot html PHP 和 MySql 查询绘制多个图表 但我陷入了困境 因为我找不到在同一个 html 页面中绘制多个 flot 的方法 为简单起见 在数据库 test db3 映像中包含以下字段 表1 用户名 发送邮
  • WooCommerce 自定义产品类型选项不隐藏自定义产品选项卡

    我刚刚向我的 WC 管理产品页面添加了自定义产品类型选项 add filter product type options this filter product type options 99 1 public function filte
  • Magento 设置脚本中的 ALTER TABLE 不使用 SQL

    乔纳森 戴 https stackoverflow com users 336905 jonathan day says 更新不应采用以下形式 SQL命令 我没遇到过 任何 DDL 或 DML 语句不能 通过 Magento 的配置执行 结
  • 如何根据另一个下拉列表中的选择动态填充下拉列表中的选项?

    我有一个表 其中包含类别信息 例如产品 我已将它们列在下拉菜单中 现在 我需要做的是 在下一个下拉菜单中列出所选类别的子类别 我希望 javascript 是必需的 但我对 javascript 还不太熟悉 将非常感谢您的帮助 你应该使用
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • Magento 中的子域 htaccess 问题

    public html www domain com public html subdomain subdomain domain com public html htaccess public html subdomain htacces
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam

随机推荐

  • 在phonegap中打开软键盘时,showkeyboard/hidekeyboard事件不会在ios 7上触发

    我有一段非常简单的代码 只是为了尝试在软键盘打开时发出警报 我只是想证明这是显示键盘打开的可行方法 document addEventListener deviceready function app deviceReady documen
  • 用于 RSSI 距离近似的卡尔曼滤波器

    我目前正在开发一个项目 该项目利用 RSSI 信号来确定用户与三个信标之间的距离 虽然我有粗略的三角测量公式 但我正在努力使一些东西更加准确 通过我所有的研究 我发现了卡尔曼滤波器 从我读到的有关它们的内容来看 它们似乎正是我想要使用的 然
  • Android 手机通话流

    Android 是否可以在发送电话数据之前对其进行实时操作 例如 通过创建一个缓冲区来记录语音然后发送 或者它是否不可访问 并且必须始终是 实时 抱歉 没有 Android 应用程序不支持通过电话与音频流交互的方式
  • Javascript:更改复选框上的标签背景颜色

    我试图根据复选框的选中 未选中状态更改表单中每个复选框中标签的背景颜色 到目前为止 我最初更改了它 但当我取消选中时它不会变回来 http jsfiddle net 7wnCL 4 http jsfiddle net 7wnCL 4 jav
  • 同步和异步通信到底如何工作

    我试图理解术语同步和异步通信 但我有点困惑 我试着深入研究一下this https stackoverflow com questions 1596589 why are asynchronous processes not called
  • Java 脚本无法在 html 电子邮件模板中运行

    我有一个场景 我需要使用 c 发送电子邮件 这可以使用 SMTP 轻松完成 但挑战是将 Web 服务合并到 html 邮件中 因此我在邮件正文中使用了 java 脚本来访问 Web 服务发出按钮点击声 作为一个 html 网页 它工作得很好
  • 以编程方式更改过期的 Oracle 数据库密码?

    在我工作的地方 一些数据库会从生产环境复制到测试环境 但 DBA 在复制后立即将 新 测试数据库上的所有密码设置为过期 以便不知道生产密码 因此 如果我运行 sqlplus 并使用特定用户名连接到测试数据库 它会立即提示我输入新密码 有没有
  • 使用 RDCOMClient 通过 R 中的 Outlook 发送电子邮件附件

    我正在运行每日分析 生成一个我想通过我的 Outlook 电子邮件发送的文件 我使用的代码在这里 并且工作得很好 但它的附件部分从来没有工作过 library RDCOMClient OutApp lt COMCreate Outlook
  • 增加 Windows 上的堆栈大小 (GCC)

    有没有办法在使用 GCC 编译 链接时增加 Windows 应用程序的堆栈大小 IIRC 在 GCC 中 您可以向 ld 提供 stack bytes 参数 E g gcc Wl stack 16777216 o file exe file
  • Grails 外部配置。无法访问外部变量。总是[:]

    我无法让 文件夹 外部变量工作 我总是得到 我正在 Windows 下使用 Grails 进行开发 这就是为什么外部配置文件看起来像 file C path to file 我在另一个项目中使用外部配置没有问题 与下面显示的方式相同 我有这
  • 基于数组项获取集合给出“FAILED_PRECONDITION:查询需要索引”[重复]

    这个问题在这里已经有答案了 我试图获取所有具有 数学 标签的问题 但它没有成功 而是转移到失败的监听器 db collection questionCollection orderBy questionID Query Direction
  • 如何从 SQuirreL SQL 调用带有 OUT 参数的 DB2 存储过程?

    我真的很喜欢 SQuirreL SQL 作为 SQL 查询工具 但我一直无法让它调用我们的 AS 400 DB2 数据库中的存储过程 我总是收到错误 设置或注册的参数值的数量与参数的数量不匹配 我已经仔细检查了参数的数量 但没有运气 这是我
  • BufferedReader 在 read() 处阻塞

    我试图创建一个简单的聊天程序 带有 服务器 和客户端 现在我的问题是程序在从服务器读取消息到客户端时阻塞 反之亦然 此示例解决了从客户端到服务器的消息问题 我在服务器端的示例 private Reader input private Wri
  • 使用 tomcat7 maven 插件中的“运行”目标的 Eclipse maven 运行配置不尊重默认上下文路径

    我正在本地开发一个 Web 服务 使用 maven 构建并部署到 tomcat 我正在使用 Maven 插件在本地运行 使用mvn tomcat run作为我的运行配置 现在 我的服务正在使用默认项目名称作为上下文路径进行部署 http l
  • 如果我在脚本仍在执行文件 I/O 操作时突然关闭脚本,会发生什么情况?

    这是我的问题 我正在编写一个脚本来检查我的网站是否运行正常 基本思想是每隔 5 分钟左右获取服务器响应时间和类似的东西 并且脚本每次检查后都会记录信息服务器状态 我知道在检查 写入日志的过程中关闭脚本是没有好处的 但我很好奇如果有很多服务器
  • SQLite 错误:无法删除WhereListIterator`1:它没有 PK

    我尝试在 Visual Studio 2012 中使用 SQLite C 从数据库中删除记录 每当我尝试删除记录时 都会收到以下错误 SQLite 错误 无法删除WhereListIterator 1 它没有 PK 我想使用两种不同的方法删
  • 使用本地 Python 脚本启动本地 PHP 脚本

    我正在编写的 Python 程序需要在 Python 进程之外启动本地 PHP 脚本 该程序还需要将参数传递给 PHP 脚本 到目前为止 这似乎启动了脚本 os system path to script here param param
  • 将 POJO 保存到 Jackrabbit JCR 中的最佳方法是什么?

    在 Jackrabbit 中 我经历了两种将 POJO 保存到存储库节点中以存储在 Jackrabbit JCR 中的方法 写我自己的层 和 使用 Apache Graffito 事实证明 编写我自己的代码既耗时又费力 必须编写并运行大量丑
  • 计算圆中的每个笛卡尔点

    我有一个数组 int lawn new int 980 1280 它存储草坪中叶片的高度值 在我的模拟中 我有一个机器人在草坪上行走并切割刀片 我的机器人呈圆形 直径为 rDiameter 坐标系是用 Double 完成的 我的草坪是用 I
  • 如何使用主义2和zend框架2中的缓存?

    请我在这里需要一些帮助 我已经搜索了很多但没有结果 我如何利用查询及其存储在memcache中的结果 我正在使用zend框架2和学说2 这是我在 module config php 中的配置 Doctrine config doctrine