CRM-11782 - Get rid of VALUE_SEPARATOR character in saved search form values
[civicrm-core.git] / Civi.php
index 0d899a65f4e7594efc7a23432c8b8332594627a3..fe16326de75dec4adc5e30a6069cdb2cd449e869 100644 (file)
--- a/Civi.php
+++ b/Civi.php
@@ -25,6 +25,26 @@ class Civi {
    */
   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.
    *
@@ -34,6 +54,29 @@ class Civi {
     return Civi\Core\Container::singleton();
   }
 
+  /**
+   * @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.
    *
@@ -50,8 +93,26 @@ class Civi {
    * 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);
   }
 
 }