bnomei/kirby3-mysql-cachedriver

MySQL based Cache-Driver

1.3.2 2022-12-11 19:09 UTC

This package is auto-updated.

Last update: 2024-04-11 22:01:40 UTC


README

Release Downloads Build Status Coverage Status Maintainability Twitter

Dolphin - a MySQL Cache Driver for Kirby 3

Commerical Usage


Support open source!

This plugin is free but if you use it in a commercial project please consider to sponsor me or make a donation.
If my work helped you to make some cash it seems fair to me that I might get a little reward as well, right?

Be kind. Share a little. Thanks.

‐ Bruno
 
M O N E Y
Github sponsor Patreon Buy Me a Coffee Paypal dontation Hire me

Installation

  • unzip master.zip as folder site/plugins/kirby3-mysql-cachedriver or
  • git submodule add https://github.com/bnomei/kirby3-mysql-cachedriver.git site/plugins/kirby3-mysql-cachedriver or
  • composer require bnomei/kirby3-mysql-cachedriver

Usage

Cache methods

$cache = \Bnomei\MySQLCache::singleton(); // or
$cache = dolphin();

$cache->set('key', 'value', $expireInMinutes);
$value = dolphin()->get('key', $default);

dolphin()->remove('key');
dolphin()->flush();

Benchmark

dolphin()->benchmark(1000);
mysql : 0.03287492121384
file : 0.11837792396545

ATTENTION: This will create and remove a lot of cache files and sqlite entries

No cache when debugging

When Kirbys global debug config is set to true the complete plugin cache will be flushed and no caches will be read. But entries will be created. This will make you live easier – trust me.

How to use MySQL Cache with Lapse or Boost

You need to set the cache driver for the lapse plugin to mysql.

site/config/config.php

<?php
return [
    'bnomei.lapse.cache' => ['type' => 'mysql'],
    'bnomei.boost.cache' => ['type' => 'mysql'],
    //... other options
];

Setup Content-File Cache

Use Kirby 3 Boost to setup a cache for content files.

Settings

You can set the host, dbname, username, password,... in the config.

site/config/config.php

return [
    // other config settings ...
    'bnomei.mysql-cachedriver.dbname' => 'YOUR-DBNAME-HERE',
    'bnomei.mysql-cachedriver.username' => 'YOUR-USERNAME-HERE',
    'bnomei.mysql-cachedriver.password' => 'YOUR-PASSWORD-HERE',
];

You can also set a callback if you use the dotenv Plugin.

site/config/config.php

return [
    // other config settings ...
    'bnomei.mysql-cachedriver.dbname' => function() { return env('MYSQL_DBNAME'); },
    'bnomei.mysql-cachedriver.username' => function() { return env('MYSQL_USERNAME'); },
    'bnomei.mysql-cachedriver.password' => function() { return env('MYSQL_PASSWORD'); },
];
bnomei.mysql-cachedriver. Default Description
store true keep accessed cache items stored in PHP memory for faster recurring access
store-ignore `` if key contains that string then ignore
transaction.limit 4096 exec transaction after n SET operations
host 127.0.0.1 string or callback
unix_socket null string or callback
dbname kirby3-mysql-cachedriver string or callback (will be created if it does not exists)
tablename kirby3-mysql-cachedriver string or callback (will be created if it does not exists)
username root string or callback
password `` string or callback
port 3306 int or callback

Dependencies

  • PHP MySQL extension

Disclaimer

This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please create a new issue.

License

MIT

It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.