Skip to content

Commit

Permalink
Rename CachedConverter to CachingConverter
Browse files Browse the repository at this point in the history
  • Loading branch information
jdreesen committed Jan 31, 2023
1 parent 6b8f9a2 commit 70601a4
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 32 deletions.
2 changes: 1 addition & 1 deletion docs/cached-converter.md → docs/caching-converter.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
In some situations - especially if you are transforming objects with relation to objects - it may be helpful
to use caching to avoid conversion of same object instances again and again.

Therefore, we offer a `CachedConverter`.
Therefore, we offer a `CachingConverter`.

Before you can directly use it you have to implement a cache key strategy for your source objects;
i.e. you have to determine how one can differentiate the source objects.
Expand Down
2 changes: 1 addition & 1 deletion docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,4 +190,4 @@ if ($ctx && $ctx->hasKey('locale')) {
Internally the `GenericContext` is only an associative array but the interface allows you to adapt your own
implementation of a domain-oriented context and use it in your populators as you like.

## [Conversion with Caching](cached-converter.md)
## [Conversion with Caching](caching-converter.md)
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*
* @implements Converter<TSource, TTarget, TContext>
*/
class CachedConverter implements Converter
class CachingConverter implements Converter
{
/**
* @param Converter<TSource, TTarget, TContext> $inner
Expand Down
2 changes: 1 addition & 1 deletion src/DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ private function addConverterSection(ArrayNodeDefinition $rootNode): void
->useAttributeAsKey('target')
->prototype('scalar')->end()
->end()
->arrayNode('cached')
->arrayNode('cache')
->info('Whether the result should be cached')
->children()
->scalarNode('service')
Expand Down
10 changes: 5 additions & 5 deletions src/DependencyInjection/NeustaConverterExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Neusta\ConverterBundle\DependencyInjection;

use Neusta\ConverterBundle\Converter\Cache\InMemoryCache;
use Neusta\ConverterBundle\Converter\CachedConverter;
use Neusta\ConverterBundle\Converter\CachingConverter;
use Neusta\ConverterBundle\Converter;
use Neusta\ConverterBundle\Populator\PropertyMappingPopulator;
use Symfony\Component\Config\FileLocator;
Expand Down Expand Up @@ -55,15 +55,15 @@ private function registerConverterConfiguration(string $id, array $config, Conta
),
]);

if (isset($config['cached'])) {
if (!$cacheId = $config['cached']['service'] ?? null) {
if (isset($config['cache'])) {
if (!$cacheId = $config['cache']['service'] ?? null) {
$container->register($cacheId = "{$id}.cache", InMemoryCache::class)
->setArguments([
'$keyFactory' => new Reference($config['cached']['key_factory']),
'$keyFactory' => new Reference($config['cache']['key_factory']),
]);
}

$container->register("{$id}.cached", CachedConverter::class)
$container->register("{$id}.caching_converter", CachingConverter::class)
->setDecoratedService($id)
->setArguments([
'$inner' => new Reference('.inner'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
use Neusta\ConverterBundle\Tests\Fixtures\Model\User;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;

class CachedConverterIntegrationTest extends KernelTestCase
class CachingConverterIntegrationTest extends KernelTestCase
{
/** @var Converter<User, Person, GenericContext> */
private Converter $converter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

use Neusta\ConverterBundle\Converter\Cache\InMemoryCache;
use Neusta\ConverterBundle\Converter;
use Neusta\ConverterBundle\Converter\CachedConverter;
use Neusta\ConverterBundle\Converter\CachingConverter;
use Neusta\ConverterBundle\Converter\GenericConverter;
use Neusta\ConverterBundle\Tests\Fixtures\Converter\Cache\UserKeyFactory;
use Neusta\ConverterBundle\Tests\Fixtures\Model\Person;
Expand All @@ -15,14 +15,14 @@
use Neusta\ConverterBundle\Tests\Fixtures\Populator\PersonNamePopulator;
use PHPUnit\Framework\TestCase;

class CachedConverterTest extends TestCase
class CachingConverterTest extends TestCase
{
/** @var Converter<User, Person> */
private Converter $converter;

protected function setUp(): void
{
$this->converter = new CachedConverter(
$this->converter = new CachingConverter(
new GenericConverter(
new PersonFactory(),
[
Expand Down
36 changes: 18 additions & 18 deletions tests/DependencyInjection/NeustaConverterExtensionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Neusta\ConverterBundle\Tests\DependencyInjection;

use Neusta\ConverterBundle\Converter\Cache\InMemoryCache;
use Neusta\ConverterBundle\Converter\CachedConverter;
use Neusta\ConverterBundle\Converter\CachingConverter;
use Neusta\ConverterBundle\Converter;
use Neusta\ConverterBundle\Converter\GenericConverter;
use Neusta\ConverterBundle\DependencyInjection\NeustaConverterExtension;
Expand Down Expand Up @@ -86,7 +86,7 @@ public function test_with_mapped_properties(): void
self::assertSame('age', $ageInYearsPopulator->getArgument('$sourceProperty'));
}

public function test_with_default_cached_converter(): void
public function test_with_default_caching_converter(): void
{
$container = $this->buildContainer([
'converter' => [
Expand All @@ -95,7 +95,7 @@ public function test_with_default_cached_converter(): void
'populators' => [
PersonNamePopulator::class,
],
'cached' => [
'cache' => [
'key_factory' => UserKeyFactory::class,
],
],
Expand All @@ -112,12 +112,12 @@ public function test_with_default_cached_converter(): void
self::assertCount(1, $converter->getArgument('$populators'));
self::assertIsReference(PersonNamePopulator::class, $converter->getArgument('$populators')[0]);

// cached converter
$cachedConverter = $container->getDefinition('foobar.cached');
self::assertSame(CachedConverter::class, $cachedConverter->getClass());
self::assertSame('foobar', $cachedConverter->getDecoratedService()[0]);
self::assertIsReference('.inner', $cachedConverter->getArgument('$inner'));
self::assertIsReference('foobar.cache', $cachedConverter->getArgument('$cache'));
// caching converter
$cachingConverter = $container->getDefinition('foobar.caching_converter');
self::assertSame(CachingConverter::class, $cachingConverter->getClass());
self::assertSame('foobar', $cachingConverter->getDecoratedService()[0]);
self::assertIsReference('.inner', $cachingConverter->getArgument('$inner'));
self::assertIsReference('foobar.cache', $cachingConverter->getArgument('$cache'));

// cache
$cache = $container->getDefinition('foobar.cache');
Expand All @@ -134,7 +134,7 @@ public function test_with_custom_cache_service(): void
'populators' => [
PersonNamePopulator::class,
],
'cached' => [
'cache' => [
'service' => 'other.cache',
],
],
Expand All @@ -151,12 +151,12 @@ public function test_with_custom_cache_service(): void
self::assertCount(1, $converter->getArgument('$populators'));
self::assertIsReference(PersonNamePopulator::class, $converter->getArgument('$populators')[0]);

// cached converter
$cachedConverter = $container->getDefinition('foobar.cached');
self::assertSame(CachedConverter::class, $cachedConverter->getClass());
self::assertSame('foobar', $cachedConverter->getDecoratedService()[0]);
self::assertIsReference('.inner', $cachedConverter->getArgument('$inner'));
self::assertIsReference('other.cache', $cachedConverter->getArgument('$cache'));
// caching converter
$cachingConverter = $container->getDefinition('foobar.caching_converter');
self::assertSame(CachingConverter::class, $cachingConverter->getClass());
self::assertSame('foobar', $cachingConverter->getDecoratedService()[0]);
self::assertIsReference('.inner', $cachingConverter->getArgument('$inner'));
self::assertIsReference('other.cache', $cachingConverter->getArgument('$cache'));
}

public function test_with_custom_cache_service_and_key_factory_defined(): void
Expand All @@ -171,7 +171,7 @@ public function test_with_custom_cache_service_and_key_factory_defined(): void
'populators' => [
PersonNamePopulator::class,
],
'cached' => [
'cache' => [
'service' => InMemoryCache::class,
'key_factory' => UserKeyFactory::class,
],
Expand All @@ -192,7 +192,7 @@ public function test_with_cache_without_service_and_key_factory_defined(): void
'populators' => [
PersonNamePopulator::class,
],
'cached' => [],
'cache' => [],
],
],
]);
Expand Down
2 changes: 1 addition & 1 deletion tests/app/config/packages/neusta_converter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ neusta_converter:
target_factory: Neusta\ConverterBundle\Tests\Fixtures\Model\PersonFactory
populators:
- Neusta\ConverterBundle\Tests\Fixtures\Populator\PersonNamePopulator
cached:
cache:
# service: user.cache
key_factory: Neusta\ConverterBundle\Tests\Fixtures\Converter\Cache\UserKeyFactory

0 comments on commit 70601a4

Please sign in to comment.