Nette\DI\Container::addService PHP Метод

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

Adds the service to the container.
public addService ( $name, $service ) : self
Результат self
    public function addService($name, $service)
    {
        if (!is_string($name) || !$name) {
            throw new Nette\InvalidArgumentException(sprintf('Service name must be a non-empty string, %s given.', gettype($name)));
        }
        $name = isset($this->meta[self::ALIASES][$name]) ? $this->meta[self::ALIASES][$name] : $name;
        if (isset($this->registry[$name])) {
            throw new Nette\InvalidStateException("Service '{$name}' already exists.");
        } elseif (!is_object($service)) {
            throw new Nette\InvalidArgumentException(sprintf("Service '%s' must be a object, %s given.", $name, gettype($service)));
        } elseif (isset($this->meta[self::SERVICES][$name]) && !$service instanceof $this->meta[self::SERVICES][$name]) {
            throw new Nette\InvalidArgumentException(sprintf("Service '%s' must be instance of %s, %s given.", $name, $this->meta[self::SERVICES][$name], get_class($service)));
        }
        $this->registry[$name] = $service;
        return $this;
    }

Usage Example

Пример #1
0
 public function signIn(Nette\DI\Container $container)
 {
     $container->removeService('nette.userStorage');
     $userStorage = m::mock('Nette\\Security\\IUserStorage');
     $userStorage->shouldReceive('isAuthenticated')->once()->andReturn(true);
     $userStorage->shouldReceive('getIdentity')->once()->andReturn(new Nette\Security\Identity(1));
     $container->addService('nette.userStorage', $userStorage);
 }
All Usage Examples Of Nette\DI\Container::addService