yfktn/twigcacheplugin

October CMS Plugin to add Twig Cache Extension into OctoberCMS.

v0.1.2 2021-06-13 12:18 UTC

This package is auto-updated.

Last update: 2024-03-14 09:31:39 UTC


README

Add twig cache plugin extension to octoberCMS.

Installing The Plugin

Since v0.0.6 we can installing the plugin from composer. From the root of octobercms path:

$ composer require yfktn/twigcacheplugin

You need to use version v0.1 for OctoberCMS version 1.1.

How To Use

This plugin currently implement the IndexedChainingCacheStrategy(), with time (LifetimeCacheStrategy()) and model (GenerationalCacheStrategy()) as index to access when we need to implement related strategy.

To use it, in your twig template, surround the code with a cache block at the part you want to cache.

Let say we have part of our homepage that we need to cache, and it would expired in 120 seconds, then our code would be:

{# add homepage annotation with time strategy, for 10 seconds #}
{% cache "homepage" {time: 10} %}
    {# heavy lifting template stuff here, include/render other partials etc #}
{% endcache %}

In another case, you have view to show detail of Eloquent database model and it would expired in 7200 seconds or when our model updated (since the cache strategy need created_at field in your model as Carbon object to generated cache key, you need to make custom mutator if it doesn't exist), then our code would be:

{# add model annotation #}
{% set annotmodel = "model" ~ post.id %}
{% cache annotmodel {model: post} %}
    {# heavy lifting template stuff here, include/render other partials etc #}
{% endcache %}

Blackhole Cache Strategy

When you are in development mode, you don't need twig loading previous generated cache to view. In the configuration file you can change value of blackholeCacheStrategyMode to true, this strategy prevents previously caching version from being rendered.

True is the default value of blackholeCacheStrategyMode and you MUST set this value to false when deploying it in your production server.

For more information about twig cache plugin extension please consult to twig cache plugin extension page.

Note: My plugin is in early stages of its development, please use with care.