https://github.com/dotkernel/dot-cache
DotKernel cache component based on zend-cache, extending and customizing it
https://github.com/dotkernel/dot-cache
independent
Last synced: 7 months ago
JSON representation
DotKernel cache component based on zend-cache, extending and customizing it
- Host: GitHub
- URL: https://github.com/dotkernel/dot-cache
- Owner: dotkernel
- License: mit
- Created: 2017-01-20T21:35:40.000Z (almost 9 years ago)
- Default Branch: 4.0
- Last Pushed: 2025-02-28T06:11:04.000Z (10 months ago)
- Last Synced: 2025-03-23T12:51:15.644Z (9 months ago)
- Topics: independent
- Language: PHP
- Homepage: https://docs.dotkernel.org/dot-cache/
- Size: 119 KB
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# dot-cache
Dotkernel cache component based on symfony-cache.
> dot-cache is a wrapper on top of [symfony/cache](https://github.com/symfony/cache)
## Documentation
Documentation is available at: https://docs.dotkernel.org/dot-cache/.
## Badges


[](https://github.com/dotkernel/dot-cache/issues)
[](https://github.com/dotkernel/dot-cache/network)
[](https://github.com/dotkernel/dot-cache/stargazers)
[](https://github.com/dotkernel/dot-cache/blob/4.0/LICENSE.md)
[](https://github.com/dotkernel/dot-cache/actions/workflows/continuous-integration.yml)
[](https://codecov.io/gh/dotkernel/dot-cache)
[](https://github.com/dotkernel/dot-cache/actions/workflows/static-analysis.yml)
> This package supports only `array` and `filesystem` adapters, you can use multiple adapters at once.
## Installation
Run the following command in your project directory
```shell
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:
```php
'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:
```php
'cache' => [
'array' => [
'class' => \Dot\Cache\Adapter\ArrayAdapter::class,
],
],
```
> 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)
```php
'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:
```php
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.