/** * @param bool $fresh * @return CRM_Cxn_CiviCxnHttp */ public static function singleton($fresh = FALSE) { if (self::$singleton === NULL || $fresh) { $cache = CRM_Utils_Cache::create(array('name' => 'CiviCxnHttp', 'type' => Civi::settings()->get('debug_enabled') ? 'ArrayCache' : array('SqlGroup', 'ArrayCache'), 'prefetch' => FALSE)); self::$singleton = new CRM_Cxn_CiviCxnHttp($cache); } return self::$singleton; }
/** * Get a list of boot services. * * These are services which must be setup *before* the container can operate. * * @param bool $loadFromDB * @throws \CRM_Core_Exception */ public static function boot($loadFromDB) { $bootServices = array(); \Civi::$statics[__CLASS__]['boot'] =& $bootServices; $bootServices['runtime'] = array('class' => 'CRM_Core_Config_Runtime', 'obj' => $runtime = new \CRM_Core_Config_Runtime()); $runtime->initialize($loadFromDB); if ($loadFromDB && $runtime->dsn) { \CRM_Core_DAO::init($runtime->dsn); } $bootServices['paths'] = array('class' => 'Civi\\Core\\Paths', 'obj' => new \Civi\Core\Paths()); $class = $runtime->userFrameworkClass; $bootServices['userSystem'] = array('class' => 'CRM_Utils_Cache_Interface', 'obj' => $userSystem = new $class()); $userSystem->initialize(); $userPermissionClass = 'CRM_Core_Permission_' . $runtime->userFramework; $bootServices['userPermissionClass'] = array('class' => 'CRM_Core_Permission_Base', 'obj' => new $userPermissionClass()); $bootServices['cache.settings'] = array('class' => 'CRM_Utils_Cache_Interface', 'obj' => \CRM_Utils_Cache::create(array('name' => 'settings', 'type' => array('*memory*', 'SqlGroup', 'ArrayCache')))); $bootServices['settings_manager'] = array('class' => 'Civi\\Core\\SettingsManager', 'obj' => new \Civi\Core\SettingsManager($bootServices['cache.settings']['obj'])); $bootServices['lockManager'] = array('class' => 'Civi\\Core\\Lock\\LockManager', 'obj' => self::createLockManager()); if ($loadFromDB && $runtime->dsn) { \CRM_Utils_Hook::singleton(TRUE); \CRM_Extension_System::singleton(TRUE); $c = new self(); \Civi::$statics[__CLASS__]['container'] = $c->loadContainer(); } }
/** * @return CRM_Utils_Cache_Interface */ public function getCache() { if ($this->cache === NULL) { $cacheGroup = md5(serialize(array('ext', $this->parameters))); // Extension system starts before container. Manage our own cache. $this->cache = CRM_Utils_Cache::create(array('name' => $cacheGroup, 'type' => array('*memory*', 'SqlGroup', 'ArrayCache'), 'prefetch' => TRUE)); } return $this->cache; }
public function __construct() { $this->cache = CRM_Utils_Cache::create(array('name' => 'hooks', 'type' => array('ArrayCache'), 'prefetch' => 1)); }
/** * Get a list of boot services. * * These are services which must be setup *before* the container can operate. * * @param bool $loadFromDB * @throws \CRM_Core_Exception */ public static function boot($loadFromDB) { // Array(string $serviceId => object $serviceInstance). $bootServices = array(); \Civi::$statics[__CLASS__]['boot'] =& $bootServices; $bootServices['runtime'] = $runtime = new \CRM_Core_Config_Runtime(); $runtime->initialize($loadFromDB); $bootServices['paths'] = new \Civi\Core\Paths(); $class = $runtime->userFrameworkClass; $bootServices['userSystem'] = $userSystem = new $class(); $userSystem->initialize(); $userPermissionClass = 'CRM_Core_Permission_' . $runtime->userFramework; $bootServices['userPermissionClass'] = new $userPermissionClass(); $bootServices['cache.settings'] = \CRM_Utils_Cache::create(array('name' => 'settings', 'type' => array('*memory*', 'SqlGroup', 'ArrayCache'))); $bootServices['settings_manager'] = new \Civi\Core\SettingsManager($bootServices['cache.settings']); $bootServices['lockManager'] = self::createLockManager(); if ($loadFromDB && $runtime->dsn) { \CRM_Core_DAO::init($runtime->dsn); \CRM_Utils_Hook::singleton(TRUE); \CRM_Extension_System::singleton(TRUE); \CRM_Extension_System::singleton(TRUE)->getClassLoader()->register(); $runtime->includeCustomPath(); $c = new self(); $container = $c->loadContainer(); foreach ($bootServices as $name => $obj) { $container->set($name, $obj); } \Civi::$statics[__CLASS__]['container'] = $container; } }