diff --git a/eZ/Bundle/EzPublishLegacyBundle/Cache/LegacyCachePurger.php b/eZ/Bundle/EzPublishLegacyBundle/Cache/LegacyCachePurger.php index 18a675c95c5..67706839cf4 100644 --- a/eZ/Bundle/EzPublishLegacyBundle/Cache/LegacyCachePurger.php +++ b/eZ/Bundle/EzPublishLegacyBundle/Cache/LegacyCachePurger.php @@ -9,6 +9,8 @@ namespace eZ\Bundle\EzPublishLegacyBundle\Cache; +use eZ\Bundle\EzPublishLegacyBundle\LegacyMapper\Configuration; +use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\HttpKernel\CacheClearer\CacheClearerInterface; use eZCacheHelper; use eZCLI; @@ -26,9 +28,16 @@ class LegacyCachePurger implements CacheClearerInterface */ private $legacyKernelClosure; - public function __construct( \Closure $legacyKernelClosure ) + public function __construct( \Closure $legacyKernelClosure, Configuration $configurationMapper, Filesystem $fs, $legacyRootDir ) { $this->legacyKernelClosure = $legacyKernelClosure; + + // If ezp_extension.php doesn't exist, it means that eZ Publish is not yet installed. + // Hence we deactivate configuration mapper to avoid potential issues (e.g. ezxFormToken which cannot be loaded). + if ( !$fs->exists( "$legacyRootDir/var/autoload/ezp_extension.php" ) ) + { + $configurationMapper->setIsEnabled( false ); + } } /** diff --git a/eZ/Bundle/EzPublishLegacyBundle/Resources/config/services.yml b/eZ/Bundle/EzPublishLegacyBundle/Resources/config/services.yml index a0c2206cc0e..67059aaaf9a 100644 --- a/eZ/Bundle/EzPublishLegacyBundle/Resources/config/services.yml +++ b/eZ/Bundle/EzPublishLegacyBundle/Resources/config/services.yml @@ -165,7 +165,7 @@ services: ezpublish_legacy.legacy_cache_purger: class: %ezpublish_legacy.legacy_cache_purger.class% - arguments: [@ezpublish_legacy.kernel] + arguments: [@ezpublish_legacy.kernel, @ezpublish_legacy.configuration_mapper, @filesystem, %ezpublish_legacy.root_dir%] tags: - { name: kernel.cache_clearer }