Nette\DI\Helpers::filterArguments PHP Метод

filterArguments() публичный статический Метод

.. and process constants recursively.
public static filterArguments ( array $args ) : array
$args array
Результат array
    public static function filterArguments(array $args)
    {
        foreach ($args as $k => $v) {
            if ($v === '...') {
                unset($args[$k]);
            } elseif (is_string($v) && preg_match('#^[\\w\\\\]*::[A-Z][A-Z0-9_]*\\z#', $v, $m)) {
                $args[$k] = constant(ltrim($v, ':'));
            } elseif (is_array($v)) {
                $args[$k] = self::filterArguments($v);
            } elseif ($v instanceof Statement) {
                $tmp = self::filterArguments([$v->getEntity()]);
                $args[$k] = new Statement($tmp[0], self::filterArguments($v->arguments));
            }
        }
        return $args;
    }

Usage Example

Пример #1
0
 public function beforeCompile()
 {
     foreach ($this->getConfig() as $class => $info) {
         $info = $this->validateConfig($this->defaults, $info, $this->prefix($class));
         if ($info['inject'] !== NULL) {
             $info['tags'][InjectExtension::TAG_INJECT] = $info['inject'];
         }
         $info = Nette\DI\Helpers::filterArguments($info);
         $this->addSetups($class, (array) $info['setup']);
         $this->addTags($class, (array) $info['tags']);
     }
 }
All Usage Examples Of Nette\DI\Helpers::filterArguments