Jackalope\Factory::get PHP Метод

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

{@inheritDoc}
public get ( $name, array $params = [] )
$params array
    public function get($name, array $params = array())
    {
        if (isset($this->classCache[$name])) {
            $name = $this->classCache[$name];
        } else {
            $originalName = $name;
            if (class_exists('Jackalope\\' . $name)) {
                $name = 'Jackalope\\' . $name;
            } elseif (!class_exists($name)) {
                throw new InvalidArgumentException("Neither class Jackalope\\{$name} nor class {$name} found. Please check your autoloader and the spelling of {$name}");
            }
            $this->classCache[$originalName] = $name;
        }
        if (0 === strpos($name, 'Jackalope\\')) {
            array_unshift($params, $this);
        }
        if (!count($params)) {
            return new $name();
        }
        if (isset($this->reflectionCache[$name])) {
            $class = $this->reflectionCache[$name];
        } else {
            $class = new ReflectionClass($name);
            $this->reflectionCache[$name] = $class;
        }
        return $class->newInstanceArgs($params);
    }

Usage Example

 /**
  * Get a repository connected to the backend with the provided doctrine
  * dbal connection.
  *
  * {@inheritDoc}
  *
  * DoctrineDBAL repositories have no default repository, passing null as
  * parameters will always return null.
  *
  * @api
  */
 public function getRepository(array $parameters = null)
 {
     if (null === $parameters) {
         throw new ConfigurationException('Jackalope-doctrine-dbal needs parameters');
     }
     if (count(array_diff_key(self::$required, $parameters))) {
         throw new ConfigurationException('A required parameter is missing: ' . implode(', ', array_keys(array_diff_key(self::$required, $parameters))));
     }
     if (count(array_diff_key($parameters, self::$required, self::$optional))) {
         throw new ConfigurationException('Additional unknown parameters found: ' . implode(', ', array_keys(array_diff_key($parameters, self::$required, self::$optional))));
     }
     if (isset($parameters['jackalope.factory'])) {
         $factory = $parameters['jackalope.factory'] instanceof FactoryInterface ? $parameters['jackalope.factory'] : new $parameters['jackalope.factory']();
     } else {
         $factory = new Factory();
     }
     $dbConn = $parameters['jackalope.doctrine_dbal_connection'];
     $transport = isset($parameters['jackalope.data_caches']) ? $factory->get('Transport\\DoctrineDBAL\\CachedClient', array($dbConn, $parameters['jackalope.data_caches'])) : $factory->get('Transport\\DoctrineDBAL\\Client', array($dbConn));
     if (isset($parameters['jackalope.check_login_on_server'])) {
         $transport->setCheckLoginOnServer($parameters['jackalope.check_login_on_server']);
     }
     if (isset($parameters['jackalope.uuid_generator'])) {
         $transport->setUuidGenerator($parameters['jackalope.uuid_generator']);
     }
     if (isset($parameters['jackalope.logger'])) {
         $transport = $factory->get('Transport\\DoctrineDBAL\\LoggingClient', array($transport, $parameters['jackalope.logger']));
     }
     $options['transactions'] = empty($parameters['jackalope.disable_transactions']);
     $options['stream_wrapper'] = empty($parameters['jackalope.disable_stream_wrapper']);
     if (isset($parameters[Session::OPTION_AUTO_LASTMODIFIED])) {
         $options[Session::OPTION_AUTO_LASTMODIFIED] = $parameters[Session::OPTION_AUTO_LASTMODIFIED];
     }
     return new Repository($factory, $transport, $options);
 }
All Usage Examples Of Jackalope\Factory::get
Factory