original_string: protected function autoWireClass(string $name, ?array $parameters = null)
      {
          $config = $this->config->get($name);
          $class = $config['use'];
  
          if (null !== $parameters) {
              $config['singleton'] = false;
          }
  
          if (preg_match('#^\{([^{}]+)\}$#', $class, $match)) {
              return $this->wireReference($name, $match[1], $config);
          }
  
          $reflection = new ReflectionClass($class);
  
          if (isset($config['factory'])) {
              $factory = $reflection->getMethod($config['factory']);
              $args = $this->autoWireMethod($name, $factory, $config, $parameters);
              $instance = call_user_func_array([$class, $config['factory']], $args);
  
              return $this->prepareService($name, $instance, $reflection, $config);
          }
  
          $constructor = $reflection->getConstructor();
  
          if (null === $constructor) {
              return $this->storeService($name, $config, new $class());
          }
  
          $args = $this->autoWireMethod($name, $constructor, $config, $parameters);
  
          return $this->createInstance($name, $reflection, $args, $config);
      }
code: protected function autoWireClass(string $name, ?array $parameters = null)
      {
          $config = $this->config->get($name);
          $class = $config['use'];
  
          if (null !== $parameters) {
              $config['singleton'] = false;
          }
  
          if (preg_match('#^\{([^{}]+)\}$#', $class, $match)) {
              return $this->wireReference($name, $match[1], $config);
          }
  
          $reflection = new ReflectionClass($class);
  
          if (isset($config['factory'])) {
              $factory = $reflection->getMethod($config['factory']);
              $args = $this->autoWireMethod($name, $factory, $config, $parameters);
              $instance = call_user_func_array([$class, $config['factory']], $args);
  
              return $this->prepareService($name, $instance, $reflection, $config);
          }
  
          $constructor = $reflection->getConstructor();
  
          if (null === $constructor) {
              return $this->storeService($name, $config, new $class());
          }
  
          $args = $this->autoWireMethod($name, $constructor, $config, $parameters);
  
          return $this->createInstance($name, $reflection, $args, $config);
      }
code_tokens: protected function autoWireClass ( string $ name , ? array $ parameters = null ) { $ config = $ this -> config -> get ( $ name ) ; $ class = $ config [ 'use' ] ; if ( null !== $ parameters ) { $ config [ 'singleton' ] = false ; } if ( preg_match ( '#^\{([^{}]+)\}$#' , $ class , $ match ) ) { return $ this -> wireReference ( $ name , $ match [ 1 ] , $ config ) ; } $ reflection = new ReflectionClass ( $ class ) ; if ( isset ( $ config [ 'factory' ] ) ) { $ factory = $ reflection -> getMethod ( $ config [ 'factory' ] ) ; $ args = $ this -> autoWireMethod ( $ name , $ factory , $ config , $ parameters ) ; $ instance = call_user_func_array ( [ $ class , $ config [ 'factory' ] ] , $ args ) ; return $ this -> prepareService ( $ name , $ instance , $ reflection , $ config ) ; } $ constructor = $ reflection -> getConstructor ( ) ; if ( null === $ constructor ) { return $ this -> storeService ( $ name , $ config , new $ class ( ) ) ; } $ args = $ this -> autoWireMethod ( $ name , $ constructor , $ config , $ parameters ) ; return $ this -> createInstance ( $ name , $ reflection , $ args , $ config ) ; }
docstring: Auto wire.
docstring_tokens: Auto wire .