X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=Civi%2FCore%2FContainer.php;h=1587f7263d0166feca2905c2a481b99debcbfe25;hb=96689db3d7b9276b10db3ee21b4cb9eed9ffc166;hp=579ee3083ee4b01e022b77ab3ff0afc40941c247;hpb=b632d5ee03738bb8e81fac0175bff93e5c2f124a;p=civicrm-core.git diff --git a/Civi/Core/Container.php b/Civi/Core/Container.php index 579ee3083e..1587f7263d 100644 --- a/Civi/Core/Container.php +++ b/Civi/Core/Container.php @@ -156,19 +156,39 @@ class Container { 'checks' => 'checks', 'session' => 'CiviCRM Session', 'long' => 'long', + 'groups' => 'contact groups', + 'navigation' => 'navigation', ]; foreach ($basicCaches as $cacheSvc => $cacheGrp) { + $definitionParams = [ + 'name' => $cacheGrp, + 'type' => ['*memory*', 'SqlGroup', 'ArrayCache'], + ]; + // For Caches that we don't really care about the ttl for and/or maybe accessed + // fairly often we use the fastArrayDecorator which improves reads and writes, these + // caches should also not have concurrency risk. + $fastArrayCaches = ['groups']; + if (in_array($cacheSvc, $fastArrayCaches)) { + $definitionParams['withArray'] = 'fast'; + } $container->setDefinition("cache.{$cacheSvc}", new Definition( 'CRM_Utils_Cache_Interface', - [ - [ - 'name' => $cacheGrp, - 'type' => ['*memory*', 'SqlGroup', 'ArrayCache'], - ], - ] + [$definitionParams] ))->setFactory('CRM_Utils_Cache::create'); } + // PrevNextCache cannot use memory or array cache at the moment because the + // Code in CRM_Core_BAO_PrevNextCache assumes that this cache is sql backed. + $container->setDefinition("cache.prevNextCache", new Definition( + 'CRM_Utils_Cache_Interface', + [ + [ + 'name' => 'CiviCRM Search PrevNextCache', + 'type' => ['SqlGroup'], + ], + ] + ))->setFactory('CRM_Utils_Cache::create'); + $container->setDefinition('sql_triggers', new Definition( 'Civi\Core\SqlTriggers', [] @@ -179,6 +199,11 @@ class Container { [] )); + $container->setDefinition('themes', new Definition( + 'Civi\Core\Themes', + [] + )); + $container->setDefinition('pear_mail', new Definition('Mail')) ->setFactory('CRM_Utils_Mail::createMailer'); @@ -322,6 +347,7 @@ class Container { $dispatcher->addListener('hook_civicrm_buildAsset', ['\CRM_Utils_VisualBundle', 'buildAssetCss']); $dispatcher->addListener('hook_civicrm_buildAsset', ['\CRM_Core_Resources', 'renderMenubarStylesheet']); $dispatcher->addListener('hook_civicrm_coreResourceList', ['\CRM_Utils_System', 'appendCoreResources']); + $dispatcher->addListener('hook_civicrm_getAssetUrl', ['\CRM_Utils_System', 'alterAssetUrl']); $dispatcher->addListener('civi.dao.postInsert', ['\CRM_Core_BAO_RecurringEntity', 'triggerInsert']); $dispatcher->addListener('civi.dao.postUpdate', ['\CRM_Core_BAO_RecurringEntity', 'triggerUpdate']); $dispatcher->addListener('civi.dao.postDelete', ['\CRM_Core_BAO_RecurringEntity', 'triggerDelete']);