dotkernel / dot-cache
DotKernel cache component extending symfony-cache
Installs: 1 985
Dependents: 2
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
This package is auto-updated.
Last update: 2024-04-17 14:36:22 UTC
README
DotKernel cache component based on symfony-cache.
Note
This package supports only
array
andfilesystem
adapters and 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' => \Frontend\App\Common\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.
EXAMPLE OF CONFIGURATION WHICH USE BOTH in_memory AND filesystem
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' => \Frontend\App\Common\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.