sfContext::getInstance PHP Method

getInstance() public static method

Retrieves the singleton instance of this class.
public static getInstance ( string $name = null, string $class = __CLASS__ ) : sfContext
$name string The name of the sfContext to retrieve.
$class string The context class to use (sfContext by default)
return sfContext An sfContext implementation instance.
    public static function getInstance($name = null, $class = __CLASS__)
    {
        if (null === $name) {
            $name = self::$current;
        }
        if (!isset(self::$instances[$name])) {
            throw new sfException(sprintf('The "%s" context does not exist.', $name));
        }
        return self::$instances[$name];
    }

Usage Example

コード例 #1
0
 /**
  * Add fallback query criteria to $criteria
  *
  * @param Criteria $criteria
  * @param array $options
  * @return QubitQuery array of objects
  */
 public static function addFallbackCriteria($criteria, $fallbackClassName, $options = array())
 {
     if (isset($options['culture'])) {
         $culture = $options['culture'];
     } else {
         $culture = sfContext::getInstance()->user->getCulture();
     }
     // Expose class constants so we can call them using a dynamic class name
     $fallbackClass = new ReflectionClass($fallbackClassName);
     $fallbackClassI18n = new ReflectionClass("{$fallbackClassName}I18n");
     // Add fallback columns (calculated)
     $criteria = self::addFallbackColumns($criteria, $fallbackClassI18n->getName());
     // Get i18n "CULTURE" column name, with "<tablename>." stripped off the front
     $cultureColName = str_replace($fallbackClassI18n->getConstant('TABLE_NAME') . '.', '', $fallbackClassI18n->getConstant('CULTURE'));
     // Build join strings
     $currentJoinString = 'current.id AND current.' . $cultureColName . ' = \'' . $culture . '\'';
     $sourceJoinString = 'source.id AND source.' . $cultureColName . ' = ' . $fallbackClass->getConstant('SOURCE_CULTURE');
     $sourceJoinString .= ' AND source.' . $cultureColName . ' <> \'' . $culture . '\'';
     // Build fancy criteria to get fallback values
     $criteria->addAlias('current', $fallbackClassI18n->getConstant('TABLE_NAME'));
     $criteria->addAlias('source', $fallbackClassI18n->getConstant('TABLE_NAME'));
     $criteria->addJoin(array($fallbackClass->getConstant('ID'), 'current.' . $cultureColName), array('current.id', '\'' . $culture . '\''), Criteria::LEFT_JOIN);
     $criteria->addJoin(array($fallbackClass->getConstant('ID'), 'source.' . $cultureColName), array('source.id', $fallbackClass->getConstant('SOURCE_CULTURE') . ' AND source.' . $cultureColName . ' <> \'' . $culture . '\''), Criteria::LEFT_JOIN);
     return $criteria;
 }
All Usage Examples Of sfContext::getInstance