X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=Civi%2FCore%2FContainer.php;h=92290febc70db9e441eafdf3c77a169ccb7b0aad;hb=3c6f1a0c3803426d7aaa2bf6b746cb2ab5f1ac49;hp=cdaabecc91e36380016b2f31e53e91d3f0e66e07;hpb=43cbbe29eae642e90bc1b98a49d15ab8c415b3e9;p=civicrm-core.git diff --git a/Civi/Core/Container.php b/Civi/Core/Container.php index cdaabecc91..92290febc7 100644 --- a/Civi/Core/Container.php +++ b/Civi/Core/Container.php @@ -201,7 +201,6 @@ class Container { // Expose legacy singletons as services in the container. $singletons = array( - 'resources' => 'CRM_Core_Resources', 'httpClient' => 'CRM_Utils_HttpClient', 'cache.default' => 'CRM_Utils_Cache', 'i18n' => 'CRM_Core_I18n', @@ -216,6 +215,11 @@ class Container { } $container->setAlias('cache.short', 'cache.default'); + $container->setDefinition('resources', new Definition( + 'CRM_Core_Resources', + [new Reference('service_container')] + ))->setFactory(array(new Reference(self::SELF), 'createResources')); + $container->setDefinition('prevnext', new Definition( 'CRM_Core_PrevNextCache_Interface', [new Reference('service_container')] @@ -226,6 +230,14 @@ class Container { [] )); + $container->setDefinition('prevnext.driver.redis', new Definition( + 'CRM_Core_PrevNextCache_Redis', + [new Reference('cache_config')] + )); + + $container->setDefinition('cache_config', new Definition('ArrayObject')) + ->setFactory(array(new Reference(self::SELF), 'createCacheConfig')); + $container->setDefinition('civi.mailing.triggers', new Definition( 'Civi\Core\SqlTrigger\TimestampTriggers', array('civicrm_mailing', 'Mailing') @@ -411,16 +423,44 @@ class Container { return $kernel; } + /** + * @param ContainerInterface $container + * @return \CRM_Core_Resources + */ + public static function createResources($container) { + $sys = \CRM_Extension_System::singleton(); + return new \CRM_Core_Resources( + $sys->getMapper(), + $container->get('cache.js_strings'), + \CRM_Core_Config::isUpgradeMode() ? NULL : 'resCacheCode' + ); + } + /** * @param ContainerInterface $container * @return \CRM_Core_PrevNextCache_Interface */ public static function createPrevNextCache($container) { - $cacheDriver = \CRM_Utils_Cache::getCacheDriver(); - $service = 'prevnext.driver.' . strtolower($cacheDriver); - return $container->has($service) - ? $container->get($service) - : $container->get('prevnext.driver.sql'); + $setting = \Civi::settings()->get('prevNextBackend'); + if ($setting === 'default') { + // For initial release (5.8.x), continue defaulting to SQL. + $isTransitional = version_compare(\CRM_Utils_System::version(), '5.9.alpha1', '<'); + $cacheDriver = \CRM_Utils_Cache::getCacheDriver(); + $service = 'prevnext.driver.' . strtolower($cacheDriver); + return $container->has($service) && !$isTransitional + ? $container->get($service) + : $container->get('prevnext.driver.sql'); + } + else { + return $container->get('prevnext.driver.' . $setting); + } + } + + public static function createCacheConfig() { + $driver = \CRM_Utils_Cache::getCacheDriver(); + $settings = \CRM_Utils_Cache::getCacheSettings($driver); + $settings['driver'] = $driver; + return new \ArrayObject($settings); } /**