缓存配置

位置: config/cache.php。由 \FastD\ServiceProvider\CacheServiceProvider 服务提供器初始化。

核心代码:

  1. <?php
  2. class CacheServiceProvider implements ServiceProviderInterface
  3. {
  4. public function register(Container $container)
  5. {
  6. $config = $container->get('config')->get('cache');
  7. $container->add('cache', new CachePool($config));
  8. unset($config);
  9. }
  10. }

配置文件默认使用文件存储,由 symfony/cache 提供操作API,更多的支持操作及处理可以查看官方文档说明。

配置信息:

  1. <?php
  2. return [
  3. 'default' => [
  4. 'adapter' => \Symfony\Component\Cache\Adapter\FilesystemAdapter::class,
  5. 'params' => [
  6. ],
  7. ]
  8. ];

在选择缓存驱动的时候,如果是选择文件存储,params 参数需要保持为空,且不能删除或者注释。

多个缓存配置

缓存服务支持多个配置,默认使用 default 连接。

代码:

  1. <?php
  2. return [
  3. 'default' => [
  4. 'adapter' => \Symfony\Component\Cache\Adapter\FilesystemAdapter::class,
  5. 'params' => [
  6. ],
  7. ],
  8. 'file' => [
  9. 'adapter' => \Symfony\Component\Cache\Adapter\FilesystemAdapter::class,
  10. 'params' => [
  11. ],
  12. ],
  13. ];

利用 cache 函数,填写参数选择连接,默认 default。如: cache('file') 选择 file 连接项。

基础使用

无论是使用文件缓存,redis缓存,使用和操作方式都是保持一致的,仅仅是适配器的改变而已。

  1. $cache = cache();
  2. $numProducts = $cache->getItem('stats.num_products');
  3. // assign a value to the item and save it
  4. $numProducts->set(4711);
  5. $cache->save($numProducts);
  6. // retrieve the cache item
  7. $numProducts = $cache->getItem('stats.num_products');
  8. if (!$numProducts->isHit()) {
  9. // ... item does not exists in the cache
  10. }
  11. // retrieve the value stored by the item
  12. $total = $numProducts->get();
  13. // remove the cache item
  14. $cache->deleteItem('stats.num_products');