prefix() public method

Prepend extension name to identifier or service name.
public prefix ( $id ) : string
return string
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;
 }
Example #2
0
 public function load(Nette\DI\Compiler $compiler, Nette\DI\ContainerBuilder $containerBuilder)
 {
     $aspects = [];
     foreach ($this->aspectsList as $def) {
         if (!is_array($def)) {
             if (!is_string($def) && (!$def instanceof \stdClass || empty($def->value)) && !$def instanceof Nette\DI\Statement) {
                 $serialised = Nette\Utils\Json::encode($def);
                 throw new Kdyby\Aop\UnexpectedValueException("The service definition {$serialised} is expected to be an array or Neon entity.");
             }
             $def = ['factory' => $def];
         }
         $def['tags'][] = AspectsExtension::ASPECT_TAG;
         $aspects[] = $def;
     }
     $compiler->parseServices($containerBuilder, ['services' => $aspects], $this->prefix ? substr($this->extension->prefix('self'), 0, -5) : NULL);
 }