Nette\DI\CompilerExtension::prefix PHP Метод

prefix() публичный Метод

Prepend extension name to identifier or service name.
public prefix ( $id ) : string
Результат string
    public function prefix($id)
    {
        return substr_replace($id, $this->name . '.', substr($id, 0, 1) === '@' ? 1 : 0, 0);
    }

Usage Example

Пример #1
0
 /**
  * @param \Nette\DI\CompilerExtension $extension
  * @param string|\stdClass $cache
  * @param string $suffix
  * @param bool $debug
  * @return string
  */
 public static function processCache(Nette\DI\CompilerExtension $extension, $cache, $suffix, $debug = NULL)
 {
     $builder = $extension->getContainerBuilder();
     $impl = $cache instanceof \stdClass ? $cache->value : ($cache instanceof Statement ? $cache->entity : (string) $cache);
     list($cache) = self::filterArgs($cache);
     /** @var Statement $cache */
     if (isset(self::$cacheDriverClasses[$impl])) {
         $cache->entity = self::$cacheDriverClasses[$impl];
     }
     if ($impl === 'default') {
         $cache->arguments[1] = 'Doctrine.' . ucfirst($suffix);
         $cache->arguments[2] = $debug !== NULL ? $debug : $builder->parameters['debugMode'];
     }
     if ($impl === 'filesystem') {
         $cache->arguments[] = $builder->parameters['tempDir'] . '/cache/Doctrine.' . ucfirst($suffix);
     }
     $def = $builder->addDefinition($serviceName = $extension->prefix('cache.' . $suffix))->setClass('Doctrine\\Common\\Cache\\Cache')->setFactory($cache->entity, $cache->arguments)->setAutowired(FALSE);
     if (method_exists($def, 'setInject')) {
         @$def->setInject(FALSE);
         // wow, such deprecated, many BC!
     }
     if (class_exists($cache->entity) && is_subclass_of($cache->entity, 'Doctrine\\Common\\Cache\\CacheProvider')) {
         $ns = 'Kdyby_' . $serviceName;
         if (preg_match('~^(?P<projectRoot>.+)(?:\\\\|\\/)vendor(?:\\\\|\\/)kdyby(?:\\\\|\\/)doctrine-cache(?:\\\\|\\/).+\\z~i', __DIR__, $m)) {
             $ns .= '_' . substr(md5($m['projectRoot']), 0, 8);
         }
         $def->addSetup('setNamespace', array($ns));
     }
     return '@' . $serviceName;
 }
All Usage Examples Of Nette\DI\CompilerExtension::prefix