Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 2 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 8 years ago)
- Default Branch: 4.0
- Last Pushed: 2024-07-22T11:52:52.000Z (5 months ago)
- Last Synced: 2024-10-30T11:09:40.689Z (2 months ago)
- Topics: independent
- Language: PHP
- Homepage: https://docs.dotkernel.org/dot-cache/
- Size: 89.8 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# dot-cache
> [!IMPORTANT]
> dot-cache is a wrapper on top of [symfony/cache](https://github.com/symfony/cache)
>
> ![OSS Lifecycle](https://img.shields.io/osslifecycle/symfony/cache)## dot-cache badges
![OSS Lifecycle](https://img.shields.io/osslifecycle/dotkernel/dot-cache)
![PHP from Packagist (specify version)](https://img.shields.io/packagist/php-v/dotkernel/dot-cache/4.0.0)[![GitHub issues](https://img.shields.io/github/issues/dotkernel/dot-cache)](https://github.com/dotkernel/dot-cache/issues)
[![GitHub forks](https://img.shields.io/github/forks/dotkernel/dot-cache)](https://github.com/dotkernel/dot-cache/network)
[![GitHub stars](https://img.shields.io/github/stars/dotkernel/dot-cache)](https://github.com/dotkernel/dot-cache/stargazers)
[![GitHub license](https://img.shields.io/github/license/dotkernel/dot-cache)](https://github.com/dotkernel/dot-cache/blob/4.0.0/LICENSE.md)[![Build Static](https://github.com/dotkernel/dot-cache/actions/workflows/continuous-integration.yml/badge.svg?branch=4.0)](https://github.com/dotkernel/dot-cache/actions/workflows/continuous-integration.yml)
[![codecov](https://codecov.io/gh/dotkernel/dot-cache/graph/badge.svg?token=FAN1MXKKS9)](https://codecov.io/gh/dotkernel/dot-cache)[![SymfonyInsight](https://insight.symfony.com/projects/787c7526-eb9d-4fa2-a8d4-bfdcc008d239/big.svg)](https://insight.symfony.com/projects/787c7526-eb9d-4fa2-a8d4-bfdcc008d239)
## Note
> This package supports only `array` and `filesystem` 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.