*/
public static $statics = array();
+ /**
+ * EXPERIMENTAL. Retrieve a named cache instance.
+ *
+ * This interface is flagged as experimental due to political
+ * ambiguity in PHP community -- PHP-FIG has an open but
+ * somewhat controversial draft standard for caching. Based on
+ * the current draft, it's expected that this function could
+ * simultaneously support both CRM_Utils_Cache_Interface and
+ * PSR-6, but that depends on whether PSR-6 changes any more.
+ *
+ * @param string $name
+ * The name of the cache. The 'default' cache is biased toward
+ * high-performance caches (eg memcache/redis/apc) when
+ * available and falls back to single-request (static) caching.
+ * @return CRM_Utils_Cache_Interface
+ */
+ public static function cache($name = 'default') {
+ return \Civi\Core\Container::singleton()->get('cache.' . $name);
+ }
+
/**
* Get the service container.
*
return Civi\Core\Container::singleton();
}
+ /**
+ * Get the event dispatcher.
+ *
+ * @return \Symfony\Component\EventDispatcher\EventDispatcherInterface
+ */
+ public static function dispatcher() {
+ return Civi\Core\Container::singleton()->get('dispatcher');
+ }
+
+ /**
+ * @return \Civi\Core\Lock\LockManager
+ */
+ public static function lockManager() {
+ return \Civi\Core\Container::getBootService('lockManager');
+ }
+
+ /**
+ * @return \Psr\Log\LoggerInterface
+ */
+ public static function log() {
+ return Civi\Core\Container::singleton()->get('psr_log');
+ }
+
+ /**
+ * Obtain the core file/path mapper.
+ *
+ * @return \Civi\Core\Paths
+ */
+ public static function paths() {
+ return \Civi\Core\Container::getBootService('paths');
+ }
+
/**
* Fetch a service from the container.
*
* singletons, containers.
*/
public static function reset() {
- Civi\Core\Container::singleton(TRUE);
self::$statics = array();
+ Civi\Core\Container::singleton();
+ }
+
+ /**
+ * @return CRM_Core_Resources
+ */
+ public static function resources() {
+ return CRM_Core_Resources::singleton();
+ }
+
+ /**
+ * Obtain the domain settings.
+ *
+ * @param int|null $domainID
+ * For the default domain, leave $domainID as NULL.
+ * @return \Civi\Core\SettingsBag
+ */
+ public static function settings($domainID = NULL) {
+ return \Civi\Core\Container::getBootService('settings_manager')->getBagByDomain($domainID);
}
}