199 lines
7.1 KiB
PHP
199 lines
7.1 KiB
PHP
<?php
|
|
|
|
namespace Config;
|
|
|
|
use CodeIgniter\Cache\CacheInterface;
|
|
use CodeIgniter\Cache\Handlers\ApcuHandler;
|
|
use CodeIgniter\Cache\Handlers\DummyHandler;
|
|
use CodeIgniter\Cache\Handlers\FileHandler;
|
|
use CodeIgniter\Cache\Handlers\MemcachedHandler;
|
|
use CodeIgniter\Cache\Handlers\PredisHandler;
|
|
use CodeIgniter\Cache\Handlers\RedisHandler;
|
|
use CodeIgniter\Cache\Handlers\WincacheHandler;
|
|
use CodeIgniter\Config\BaseConfig;
|
|
|
|
class Cache extends BaseConfig
|
|
{
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Primary Handler
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* The name of the preferred handler that should be used. If for some reason
|
|
* it is not available, the $backupHandler will be used in its place.
|
|
*/
|
|
public string $handler = 'file';
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Backup Handler
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* The name of the handler that will be used in case the first one is
|
|
* unreachable. Often, 'file' is used here since the filesystem is
|
|
* always available, though that's not always practical for the app.
|
|
*/
|
|
public string $backupHandler = 'dummy';
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Key Prefix
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* This string is added to all cache item names to help avoid collisions
|
|
* if you run multiple applications with the same cache engine.
|
|
*/
|
|
public string $prefix = '';
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Default TTL
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* The default number of seconds to save items when none is specified.
|
|
*
|
|
* WARNING: This is not used by framework handlers where 60 seconds is
|
|
* hard-coded, but may be useful to projects and modules. This will replace
|
|
* the hard-coded value in a future release.
|
|
*/
|
|
public int $ttl = 60;
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Reserved Characters
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* A string of reserved characters that will not be allowed in keys or tags.
|
|
* Strings that violate this restriction will cause handlers to throw.
|
|
* Default: {}()/\@:
|
|
*
|
|
* NOTE: The default set is required for PSR-6 compliance.
|
|
*/
|
|
public string $reservedCharacters = '{}()/\@:';
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* File settings
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* Your file storage preferences can be specified below, if you are using
|
|
* the File driver.
|
|
*
|
|
* @var array{storePath?: string, mode?: int}
|
|
*/
|
|
public array $file = [
|
|
'storePath' => WRITEPATH . 'cache/',
|
|
'mode' => 0640,
|
|
];
|
|
|
|
/**
|
|
* -------------------------------------------------------------------------
|
|
* Memcached settings
|
|
* -------------------------------------------------------------------------
|
|
*
|
|
* Your Memcached servers can be specified below, if you are using
|
|
* the Memcached drivers.
|
|
*
|
|
* @see https://codeigniter.com/user_guide/libraries/caching.html#memcached
|
|
*
|
|
* @var array{host?: string, port?: int, weight?: int, raw?: bool}
|
|
*/
|
|
public array $memcached = [
|
|
'host' => '127.0.0.1',
|
|
'port' => 11211,
|
|
'weight' => 1,
|
|
'raw' => false,
|
|
];
|
|
|
|
/**
|
|
* -------------------------------------------------------------------------
|
|
* Redis settings
|
|
* -------------------------------------------------------------------------
|
|
*
|
|
* Your Redis server can be specified below, if you are using
|
|
* the Redis or Predis drivers.
|
|
*
|
|
* @var array{
|
|
* host?: string,
|
|
* password?: string|null,
|
|
* port?: int,
|
|
* timeout?: int,
|
|
* async?: bool,
|
|
* persistent?: bool,
|
|
* database?: int
|
|
* }
|
|
*/
|
|
public array $redis = [
|
|
'host' => '127.0.0.1',
|
|
'password' => null,
|
|
'port' => 6379,
|
|
'timeout' => 0,
|
|
'async' => false, // specific to Predis and ignored by the native Redis extension
|
|
'persistent' => false,
|
|
'database' => 0,
|
|
];
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Available Cache Handlers
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* This is an array of cache engine alias' and class names. Only engines
|
|
* that are listed here are allowed to be used.
|
|
*
|
|
* @var array<string, class-string<CacheInterface>>
|
|
*/
|
|
public array $validHandlers = [
|
|
'apcu' => ApcuHandler::class,
|
|
'dummy' => DummyHandler::class,
|
|
'file' => FileHandler::class,
|
|
'memcached' => MemcachedHandler::class,
|
|
'predis' => PredisHandler::class,
|
|
'redis' => RedisHandler::class,
|
|
'wincache' => WincacheHandler::class,
|
|
];
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Web Page Caching: Cache Include Query String
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* Whether to take the URL query string into consideration when generating
|
|
* output cache files. Valid options are:
|
|
*
|
|
* false = Disabled
|
|
* true = Enabled, take all query parameters into account.
|
|
* Please be aware that this may result in numerous cache
|
|
* files generated for the same page over and over again.
|
|
* ['q'] = Enabled, but only take into account the specified list
|
|
* of query parameters.
|
|
*
|
|
* @var bool|list<string>
|
|
*/
|
|
public $cacheQueryString = false;
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Web Page Caching: Cache Status Codes
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* HTTP status codes that are allowed to be cached. Only responses with
|
|
* these status codes will be cached by the PageCache filter.
|
|
*
|
|
* Default: [] - Cache all status codes (backward compatible)
|
|
*
|
|
* Recommended: [200] - Only cache successful responses
|
|
*
|
|
* You can also use status codes like:
|
|
* [200, 404, 410] - Cache successful responses and specific error codes
|
|
* [200, 201, 202, 203, 204] - All 2xx successful responses
|
|
*
|
|
* WARNING: Using [] may cache temporary error pages (404, 500, etc).
|
|
* Consider restricting to [200] for production applications to avoid
|
|
* caching errors that should be temporary.
|
|
*
|
|
* @var list<int>
|
|
*/
|
|
public array $cacheStatusCodes = [];
|
|
}
|