This package supports only
arrayandfilesystemadapters, you can use multiple adapters at once.
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.
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,
],
],
The above configuration will use an in-memory cache, because you use the
arrayadapter.
If you want to store the cache into files on your local disk you will need to use the filesystem adapter.
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 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',
],
],
],
];
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.