bigyouth/page-cache-bundle

安装: 14

依赖: 0

建议者: 0

安全性: 0

星标: 4

关注者: 4

分支: 0

类型:symfony-bundle

1.0.1 2019-12-08 21:46 UTC

This package is auto-updated.

Last update: 2024-09-09 07:48:18 UTC


README

这是什么?

这个包提供了一个简单的页面缓存解决方案,作为应用程序内的反向代理工作。

要求

"php": "^5.3.9|^7.0",
"symfony/cache": "^3.1"

安装

下载包

https://getcomposer.org/download/下载Composer

composer require bigyouth/page-cache-bundle

注册包

通过将包添加到项目app/AppKernel.php文件中registerBundles方法的包数组来启用包

<?php

# app/AppKernel.php

// ...

class AppKernel extends Kernel
{
        public function registerBundles()
        {
            $bundles = [
                // ...

                new Bigyouth\BigyouthPageCacheBundle\BigyouthPageCacheBundle(),
            ];

            // ...
        }

        // ...
}

配置

以下是默认包配置

# app/config/config.yml


bigyouth_page_cache:
    enabled: false
    ttl: 300
    type: "filesystem"
    exclude: []

enabled

default : false

设置为true以启用包。

ttl

default : 300

缓存有效期。此值上下浮动+5%/-5%,以避免多个缓存同时过期。

type

default: filesystem

此参数可以设置两个值:filesystemredis

如果使用filesystem,缓存将写入缓存文件夹:var/cache/by_cache

exclude

default : empty array

此参数允许您定义将被排除在页面缓存之外的URL方案。

ex

exclude:
    - "app_dev.php"
    - "back"
    - "login"
    - "logout"
    - "login_check"

包含上述术语之一的每个URL将不会通过BigyouthPageCacheBundle处理。

redis_host

default : localhost

Redis主机。此参数仅在type参数设置为redis时使用。

redis_port

default : 6379

Redis端口。此参数仅在type参数设置为redis时使用。

使用

缓存

要使用BigyouthPageCacheBundle,您的控制器必须扩展PageCacheController.php类并使用render函数

<?php

// ...

class AcmeController extends PageCacheController
{

        // ...
        public function indexAction(Request $request)
        {

            // ...

            return $this->render('FrontBundle:Page:index.html.twig');

        }
}

PageCacheController重新编写了render函数来管理和渲染缓存数据。所有使用render函数的控制器操作都将被缓存。

缓存失效

BigyouthPageCacheBundle使用缓存标签来识别您的缓存数据。这些标签由缓存页面的URL方案定义。

例如,位于/products/list/my-product之后的页面将被标记为productslistmy-product

因此,您可以在控制器中执行以下操作来使产品页面失效

// ...

$this->get('by.page_cache')->invalidate(["my-product"]);

// ...

或者,如果您想使所有产品页面失效

// ...

$this->get('by.page_cache')->invalidate(["products"]);

// ...

作者

  • Alexis Smadja - 初始工作 - Alxss

还可以查看参与此项目的贡献者列表

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。