stadline / execution-cache-bundle
此Bundle为Symfony控制器提供执行缓存。
Requires
- cache/adapter-common: ^0.3.0
This package is not auto-updated.
Last update: 2024-09-26 08:48:16 UTC
README
此Bundle在应用程序级别提供缓存机制。它与反向代理级别的HTTP缓存非常相似,但执行缓存是在更晚的时候完成的。这样,请求已经通过安全层检查,但如果结果应该相同,我们仍然可以运行控制器两次。
缓存存储将根据请求头和请求体提供不同的结果。如果发送了两次完全相同的请求且响应被缓存,则不会运行控制器,而是发送响应。
步骤 1:安装AdapterBundle
此Bundle使用由https://github.com/php-cache/adapter-bundle提供的PSR-6缓存实现。它可以是由Memcached、Redis、文件系统、空或您自己的实现。选择权在您手中!
在安装此Bundle之前,请查看他们的文档。
步骤 2:安装Bundle
打开命令行,转到您的项目目录,并执行以下命令以下载此Bundle的最新稳定版本
$ composer require stadline/execution-cache-bundle
此命令要求您全局安装Composer,如Composer文档中的安装章节中所述。
步骤 3:启用Bundle
然后,通过在您的项目中的app/AppKernel.php
文件中添加以下行来启用此Bundle
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Stadline\ExecutionCacheBundle\StadlineExecutionCacheBundle(), ); // ... } // ... }
步骤 4:添加ExecutionCache注解
要启用缓存,您必须在要缓存的控制器方法上添加一个注解。
<?php namespace AcmeBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use Stadline\ExecutionCacheBundle\Annotation\ExecutionCache; class BrandController extends Controller { /** * @ExecutionCache(lifetime=3600) */ public function indexAction(Request $request) { // do some heavy stuff } }
如果您想设置缓存TTL,也可以这样做,但这不是必需的。
这就完了!
配置
您可以轻松覆盖配置
# Default configuration for extension with alias: "stadline_execution_cache"
stadline_execution_cache:
storage:
prefix: exc_
default_ttl: 300
pool_adapter: cache
您可以设置键前缀和默认TTL。
pool_adapter可以是任何CachePool实现,请参阅http://www.php-cache.com/en/latest/symfony/adapter-bundle/#configuration
例如,如果您定义了一个名为my_filesystem
的提供者,您可以使用cache.provider.my_file_system
(或者如果它是默认提供者,则只需使用cache
)