klsoft / yii3-cache-doctrine
The package provides the PSR-16 cache using the Doctrine ORM
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/klsoft/yii3-cache-doctrine
Requires
- klsoft/yii3-doctrine: ^1.0
- psr/simple-cache: ^2.0|^3.0
README
The package provides the PSR-16 cache using the Doctrine ORM.
Requirement
- PHP 8.2 or higher.
Installation
composer require klsoft/yii3-cache-doctrine
How to use
1. Configure the EntityManagerInterface.
2. Use the Doctrine console command to create or update the database schema.
Create the database schema:
APP_ENV=dev ./yii doctrine:orm:schema-tool:create
Update the database schema:
APP_ENV=dev ./yii doctrine:orm:schema-tool:update --force
3. Configure the CacheInterface.
use Yiisoft\Cache\CacheInterface; use Yiisoft\Cache\Cache; use Doctrine\ORM\EntityManagerInterface; use Klsoft\Yii3CacheDoctrine\DoctrineCache; return [ // ... CacheInterface::class => static function (ContainerInterface $container) { return new Cache(new DoctrineCache($container->get(EntityManagerInterface::class))); }, ];
4. Cache the data.
Example:
namespace MyNamespace; use Yiisoft\Cache\CacheInterface; final class ProductRepository implements ProductRepositoryInterface { private const TOP_PRODUCTS = 'top_poroducts'; public function __construct( private CacheInterface $cache, private int $cacheDuration) { } public function getTopProducts(int $numberOfTopProducts): array { return $this->cache->getOrSet( ProductRepository::TOP_PRODUCTS, function () use ($numberOfTopProducts) { return $this->getTopProductsFromDb($numberOfTopProducts); }, $this->cacheDuration); } }