dotkernel / dot-cache
DotKernel cache component extending symfony-cache
Installs: 12 049
Dependents: 3
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 1
Open Issues: 2
Requires
- php: ~8.2.0 || ~8.3.0
- symfony/cache: ^7.0
Requires (Dev)
- laminas/laminas-coding-standard: ^2.5
- phpunit/phpunit: ^10.5.5
- squizlabs/php_codesniffer: ^3.8.0
- vimeo/psalm: ^5.13
README
Important
dot-cache is a wrapper on top of symfony/cache
dot-cache badges
Note
This package supports only
array
andfilesystem
adapters, you can use multiple adapters at once.
Installation
Run the following command in your project directory
composer require dotkernel/dot-cache
After installing, add the Dot\Cache\ConfigProvider::class
class to your configuration aggregate.
Configuration for Doctrine in_array
In config\autoload\doctrine.global.php
you need to add the following configurations:
Under the doctrine.configuration.orm_default
key add the following config:
'result_cache' => 'array',
'metadata_cache' => 'array',
'query_cache' => 'array',
'hydration_cache' => 'array',
'second_level_cache' => [
'enabled' => true,
'default_lifetime' => 3600,
'default_lock_lifetime' => 60,
'file_lock_region_directory' => '',
'regions' => [],
],
Next, under the doctrine
key add the following config:
'cache' => [
'array' => [
'class' => \Dot\Cache\Adapter\ArrayAdapter::class,
],
],
Note
The above configuration will use an in-memory cache, because you use the
array
adapter.
If you want to store the cache into files on your local disk you will need to use the filesystem
adapter.
Configuration for Doctrine cache using filesystem
The filesystem
adapter needs some extra configurations :
-
directory (folder path)
-
namespace (directory name)
'cache' => [ 'array' => [ 'class' => \Dot\Cache\Adapter\ArrayAdapter::class, ], 'filesystem' => [ 'class' => \Dot\Cache\Adapter\FilesystemAdapter::class, 'directory' => getcwd() . '/data/cache', 'namespace' => 'doctrine', ], ],
You can store result_cache
, metadata_cache
, query_cache
, hydration_cache
into files using the filesystem
adapter or you can store the result_cache
into memory using the array
adapter.
Configuration example for both in-memory and filesystem adapters
Configuration sample for config\autoload\doctrine.global.php
file:
return [
'dependencies' => [
'factories' => [
\Dot\Cache\Adapter\FilesystemAdapter::class => \Dot\Cache\Factory\FilesystemAdapterFactory::class,
'aliases' => [
\Symfony\Component\Cache\Adapter\FilesystemAdapter::class => \Dot\Cache\Adapter\FilesystemAdapter::class
],
],
'doctrine' => [
'configuration' => [
'orm_default' => [
'result_cache' => 'array',
'metadata_cache' => 'array',
'query_cache' => 'filesystem',
'hydration_cache' => 'array',
'second_level_cache' => [
'enabled' => true,
'default_lifetime' => 3600,
'default_lock_lifetime' => 60,
'file_lock_region_directory' => '',
'regions' => [],
],
],
],
'cache' => [
'array' => [
'class' => \Symfony\Component\Cache\Adapter\ArrayAdapter::class,
],
'filesystem' => [
'class' => \Dot\Cache\Adapter\FilesystemAdapter::class,
'directory' => getcwd() . '/data/cache',
'namespace' => 'doctrine',
],
],
],
];
NOTE
The above configuration is just a sample, it should not be used as it is.
You can enable/disable the caching system using the doctrine.configuration.orm_default.second_level_cache.enabled
key.