Skip to content

Commit

Permalink
refactor: activate cache for mapping
Browse files Browse the repository at this point in the history
  • Loading branch information
aarongerig committed Mar 18, 2024
1 parent cc8df5f commit 0e0448d
Show file tree
Hide file tree
Showing 11 changed files with 44 additions and 95 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class AddSaveHandlerPass implements CompilerPassInterface
*/
public function process(ContainerBuilder $container): void
{
foreach ($container->findTaggedServiceIds('element_manager.save_handler', true) as $id => $attributes) {
foreach ($container->findTaggedServiceIds('pimcore_element_manager.save_handler', true) as $id => $attributes) {
if (!isset($attributes[0]['className'])) {
throw new \InvalidArgumentException(\sprintf('Tagged Service `%s` needs to have `className` attribute.', $id));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class Configuration implements ConfigurationInterface
*/
public function getConfigTreeBuilder(): TreeBuilder
{
$treeBuilder = new TreeBuilder('element_manager');
$treeBuilder = new TreeBuilder('pimcore_element_manager');
$rootNode = $treeBuilder->getRootNode();

$rootNode
Expand Down Expand Up @@ -109,7 +109,7 @@ private function addSaveManagerSection(ArrayNodeDefinition $rootNode): void
->useAttributeAsKey('name')
->prototype('scalar')->end()
->children()
->scalarNode('group')->defaultValue('element_manager')->end()
->scalarNode('group')->defaultValue('pimcore_element_manager')->end()
->end()
->end()
->end()
Expand Down Expand Up @@ -177,7 +177,7 @@ private function addDuplicationSection(ArrayNodeDefinition $rootNode): void
/**
* @param ArrayNodeDefinition $node
*/
private function addPimcoreResourcesSection(ArrayNodeDefinition $node)
private function addPimcoreResourcesSection(ArrayNodeDefinition $node): void
{
$node
->children()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpFoundation\File\File;

class ElementManagerExtension extends AbstractModelExtension
class PimcoreElementManagerExtension extends AbstractModelExtension
{
/**
* @inheritDoc
Expand Down Expand Up @@ -179,12 +179,11 @@ private function registerDuplicationCheckerConfiguration(
$duplicationBuilder->addMethodCall('addXmlMappings', [$files['yaml']]);
}

// ToDo refactor Caching
// if (!$container->getParameter('kernel.debug')) {
// $duplicationBuilder->addMethodCall('setMetadataCache', [
// new Reference('duplication_checker.mapping.cache.symfony'),
// ]);
// }
if (!$container->getParameter('kernel.debug')) {
$duplicationBuilder->addMethodCall('setMappingCache', [
new Reference('duplication_checker.mapping.cache.adapter'),
]);
}
}

/**
Expand Down Expand Up @@ -220,7 +219,7 @@ private function registerDuplicationCheckerMapping(ContainerBuilder $container,
$this->registerMappingFilesFromDir($dir, $fileRecorder);
}

if (\is_array($config['mapping']['paths'])) {
if (isset($config['mapping']['paths']) && \is_array($config['mapping']['paths'])) {
$this->registerMappingFilesFromConfig($container, $config, $fileRecorder);
}
}
Expand Down
10 changes: 6 additions & 4 deletions src/PimcoreElementManagerBundle/PimcoreElementManagerBundle.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,12 @@
use Composer\InstalledVersions;
use CoreShop\Bundle\ResourceBundle\AbstractResourceBundle;
use CoreShop\Bundle\ResourceBundle\CoreShopResourceBundle;
use Instride\Bundle\PimcoreElementManagerBundle\DependencyInjection\CompilerPass\AddDataTransformersPass;
use Instride\Bundle\PimcoreElementManagerBundle\DependencyInjection\CompilerPass\AddSaveHandlerPass;
use Instride\Bundle\PimcoreElementManagerBundle\DependencyInjection\CompilerPass\AddSimilarityCheckerPass;
use Pimcore\Extension\Bundle\Traits\PackageVersionTrait;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Validator\DependencyInjection\AddConstraintValidatorsPass;

class PimcoreElementManagerBundle extends AbstractResourceBundle
{
Expand Down Expand Up @@ -50,10 +53,9 @@ public function build(ContainerBuilder $builder): void
{
parent::build($builder);

// TODO: Activate?
// $builder->addCompilerPass(new AddConstraintValidatorsPass('duplication_checker.validator_factory', 'duplication_checker.constraint_validator'));
// $builder->addCompilerPass(new AddDataTransformersPass());
// $builder->addCompilerPass(new AddSimilarityCheckerPass());
$builder->addCompilerPass(new AddConstraintValidatorsPass('duplication_checker.validator_factory', 'duplication_checker.constraint_validator'));
$builder->addCompilerPass(new AddDataTransformersPass());
$builder->addCompilerPass(new AddSimilarityCheckerPass());
$builder->addCompilerPass(new AddSaveHandlerPass());
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
element_manager:
pimcore_element_manager:
pimcore_admin:
js:
startup: '/bundles/pimcoreelementmanager/pimcore/js/startup.js'
duplicate_index_item: '/bundles/pimcoreelementmanager/pimcore/js/duplication_index/item.js'
duplicate_index_panel: '/bundles/pimcoreelementmanager/pimcore/js/duplication_index/panel.js'
css:
index: '/bundles/pimcoreelementmanager/pimcore/css/elementmanager.css'
index: '/bundles/pimcoreelementmanager/pimcore/css/pimcoreelementmanager.css'
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
pimcore_element_manager_admin_duplicate_index:
type: coreshop.resources
resource: |
alias: pimcore_element_manager.potential_duplicate
only: [get, list]
additional_routes:
duplicates:
path: get-potential-duplicates
action: getPotentialDuplicates
methods:
- GET
decline:
path: decline
action: declineDuplication
methods:
- POST
undecline:
path: undecline
action: unDeclineDuplication
methods:
- POST
alias: pimcore_element_manager.potential_duplicate
only: [get, list]
additional_routes:
duplicates:
path: get-potential-duplicates
action: getPotentialDuplicates
methods:
- GET
decline:
path: decline
action: declineDuplication
methods:
- POST
undecline:
path: undecline
action: unDeclineDuplication
methods:
- POST
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ services:
- '@Instride\Bundle\PimcoreElementManagerBundle\DuplicateIndex\DuplicateFinder'
- '@event_dispatcher'
tags:
- { name: console.command, command: 'element_manager:duplicate-index' }
- { name: console.command, command: 'pimcore-element-manager:duplicate-index' }
Original file line number Diff line number Diff line change
Expand Up @@ -39,20 +39,14 @@ services:
tags:
- { name: kernel.cache_warmer }

duplication_checker.mapping.cache.symfony.php_array:
duplication_checker.mapping.cache.adapter:
class: Symfony\Component\Cache\Adapter\PhpArrayAdapter
public: false
factory: ['Symfony\Component\Cache\Adapter\PhpArrayAdapter', 'create']
arguments:
- '%duplication_checker.cache.file%'
- '@duplication_checker.cache'

duplication_checker.mapping.cache.symfony:
class: Symfony\Component\Cache\Psr16Cache
public: false
arguments:
- '@duplication_checker.mapping.cache.symfony.php_array'

Instride\Bundle\PimcoreElementManagerBundle\DuplicateChecker\DuplicateService:
arguments:
- '@duplication_checker.validator'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,5 @@ services:
- { name: kernel.event_listener, event: pimcore.dataobject.postAdd, method: onPostAdd }
- { name: kernel.event_listener, event: pimcore.dataobject.preDelete, method: onPreDelete }
- { name: kernel.event_listener, event: pimcore.dataobject.postDelete, method: onPostDelete }

Instride\Bundle\PimcoreElementManagerBundle\SaveManager\ObjectSaveManagers: ~
53 changes: 3 additions & 50 deletions src/PimcoreElementManagerBundle/SaveManager/ObjectSaveManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,73 +24,39 @@ class ObjectSaveManager implements ObjectSaveManagerInterface
/**
* @var ObjectSaveHandlerInterface[]
*/
protected $saveHandlers = [];
protected array $saveHandlers = [];
protected array $options = [];

/**
* @var array
*/
protected $options = [];

/**
* @inheritDoc
*/
public function preAdd(Concrete $object): void
{
if ($object->getPublished()) {
$this->validateOnSave($object);
}

$this->applySaveHandlers($object, 'preAdd');

// TODO: Should be a save handler
/*if ($this->pimcoreContextResolver->getPimcoreContext() === PimcoreContextResolver::CONTEXT_ADMIN) {
$this->applyNamingScheme($address);
}*/
}

/**
* @inheritDoc
*/
public function postAdd(Concrete $object): void
{
$this->applySaveHandlers($object, 'postAdd');
}

/**
* @inheritDoc
*/
public function preUpdate(Concrete $object): void
{
$this->applySaveHandlers($object, 'preUpdate');
}

/**
* @inheritDoc
*/
public function postUpdate(Concrete $object): void
{
$this->applySaveHandlers($object, 'postUpdate');
}

/**
* @inheritDoc
*/
public function preDelete(Concrete $object): void
{
$this->applySaveHandlers($object, 'preDelete');
}

/**
* @inheritDoc
*/
public function postDelete(Concrete $object): void
{
$this->applySaveHandlers($object, 'postDelete');
}

/**
* @inheritDoc
*/
public function validateOnSave(Concrete $object, bool $withDuplicatesCheck = true): bool
{
return true;
Expand All @@ -112,35 +78,22 @@ public function setSaveHandlers(array $saveHandlers): void
$this->saveHandlers = $saveHandlers;
}

/**
* @inheritDoc
*/
public function addSaveHandler(ObjectSaveHandlerInterface $saveHandler): void
{
$this->saveHandlers[] = $saveHandler;
}

/**
* @inheritDoc
*/
public function getOptions(): array
{
return $this->options;
}

/**
* @inheritDoc
*/
public function setOptions(array $options): void
{
$this->options = $options;
}

/**
* @param Concrete $concrete
* @param $saveHandlerMethod
*/
private function applySaveHandlers(Concrete $concrete, $saveHandlerMethod): void
private function applySaveHandlers(Concrete $concrete, string $saveHandlerMethod): void
{
$saveHandlers = $this->getSaveHandlers();
$postSaveMethod = 'post' . \ucfirst($saveHandlerMethod);
Expand Down

0 comments on commit 0e0448d

Please sign in to comment.