Tow*_*wer 42 php caching symfony
我需要使用Symfony 2的缓存系统缓存一些特定于应用程序的数据,以便我可以运行cache:clear
清除它.所有缓存都依赖于,app/cache
但我如何实际缓存数据呢?
http://symfony.com/doc/current/cookbook/index.html
我看到的唯一主题是关于使用Varnish进行HTML缓存.
Kri*_*ith 78
如果您使用的是Doctrine,则只需使用这些缓存类.
添加服务config.yml
:
services:
cache:
class: Doctrine\Common\Cache\ApcCache
Run Code Online (Sandbox Code Playgroud)
并在您的控制器中使用它:
if ($fooString = $this->get('cache')->fetch('foo')) {
$foo = unserialize($fooString);
} else {
// do the work
$this->get('cache')->save('foo', serialize($foo));
}
Run Code Online (Sandbox Code Playgroud)
Мак*_*тов 33
使用Doctrine缓存提供程序的简单方法.首先,注册服务(config.yml中的示例):
services:
memcached:
class: Memcached
calls:
- [ addServer, ['localhost', 11211] ]
memcached_cache:
class: Doctrine\Common\Cache\MemcachedCache
calls:
- [ setMemcached, [@memcached] ]
Run Code Online (Sandbox Code Playgroud)
然后使用get服务,例如在controler中:
$cache = $this->get('memcached_cache');
Run Code Online (Sandbox Code Playgroud)
发送另一个服务使用电话:
calls:
- [ setCacheProvider, [@memcached_cache] ]
Run Code Online (Sandbox Code Playgroud)
或参数:
arguments:
- @memcached_cache
Run Code Online (Sandbox Code Playgroud)
以同样的方式,您可以使用Doctrine Cache包的其他接口.Doctrine Cache提供了一个非常简单的界面,为其提供了几个开箱即用的实现:
如果您尚未使用Doctrine,则可能需要Common Library for Doctrine项目:php composer.phar require doctrine/common
或者只需要Caching库为许多缓存后端提供面向对象的API:php composer.phar require doctrine/cache
如何使用Doctrine Caching,您可以在Doctrine项目网站上的Doctrine Common文档中阅读
Symfony2不提供应用程序层缓存的任何组件.
就像你已经被告知的那样,你可以使用Doctrine Common缓存库http://docs.doctrine-project.org/projects/doctrine-common/en/latest/reference/caching.html
如果您想要更高级的东西,您还可以使用社区提供的缓存包之一.例如,https://github.com/TheBigBrainsCompany/TbbcCacheBundle#cachebundle提供了良好缓存策略的工具.
归档时间: |
|
查看次数: |
41405 次 |
最近记录: |