easytek / doctrine-cache-invalidator-bundle
此包已废弃且不再维护。未建议替代包。
轻松使 doctrine 缓存失效
v0.1
2013-09-19 07:47 UTC
Requires
- php: >=5.3.2
- doctrine/orm: ~2.2,>=2.2.3
This package is auto-updated.
Last update: 2021-01-25 20:22:48 UTC
README
轻松使 doctrine 缓存失效。
此包仍在开发中。
待办事项
- 在包配置中定义失效规则,而不是在类中吗?
- 添加一些测试。
- 添加 Doctrine 2.3 通配符失效语法。
安装
composer require "easytek/doctrine-cache-invalidator-bundle" "dev-master"
使用
创建此服务
<?php namespace You\YourBundle\Cache; use Easytek\DoctrineCacheInvalidatorBundle\Cache\CacheInvalidationInterface; class CacheInvalidation implements CacheInvalidationInterface { public function getClasses() { retun array(); } }
然后将其添加到您的服务文件配置中
you.yourbundle.cache_invalidation: class: You\YourBundle\Cache\CacheInvalidation tags: - { name: easytek.doctrine_cache_invalidation }
然后您需要填充您的服务 getClasses 方法的返回数组。该数组包含您要处理的每个 doctrine 实体类的键。此键与一个包含失效规则的数组相关联,每个失效规则也是一个数组,包含以下两个信息
- 缓存 ID 模式,可以包含 {attribute},就像您在 Twig 中做的那样。
- 触发失效的实体更改,可以是 "insert"、"update"、"delete" 或 "*",后者包含前三个。
示例
// ... public function getClasses() { return array( 'You\YourBundle\Entity\Category' => array( array( 'pattern' => 'category_{id}', 'changes' => array('*') ) ) ) }
这意味着,当 Category 实体被插入、更新或删除时,缓存 ID 'category_{id}'(其中 {id} 由 $category->getId() 替换)将被清除。