addService() public method

Adds the service to the container.
public addService ( $name, $service ) : self
return self
Esempio n. 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);
 }
Esempio n. 2
0
 /**
  * Reload system container.
  */
 protected function reloadSystemContainer()
 {
     /** @var $configurator Configurator */
     $configurator = $this->context->configurator;
     $class = $this->context->parameters['container']['class'] . $this->_systemContainer++;
     LimitedScope::evaluate($configurator->buildContainer($dependencies, $class));
     /** @var context Container */
     $this->context = new $class();
     $this->context->parameters = (include $this->configDir . '/settings.php') + $this->context->parameters;
     $this->context->initialize();
     $this->context->addService("configurator", $configurator);
 }
Esempio n. 3
0
 public function invoke(Container $container, Generator $faker, RepositoryContainer $orm)
 {
     $this->faker = $faker;
     $container->addService('subtitles', $container->createInstance(FakeSubtitles::class));
     $users = $this->create(50, User::class, $orm->users, [$this, 'fillUser']);
     $videos = $this->create(20, Video::class, $orm->contents, [$this, 'fillVideo']);
     $this->createComments(10, $videos, $users, $orm->contents);
     $subjects = $this->create(7, Subject::class, $orm->subjects, [$this, 'fillSubject']);
     $this->createSchemasAndBlocks($orm, $subjects, $videos);
     $this->out->writeln('flushing');
     $orm->flush();
     $this->out->writeln('<info>done</info>');
 }
Esempio n. 4
0
 /**
  * Makes a request.
  *
  * @param IRequest $request
  * @return BrowserKit\Response
  * @throws MissingContainerException
  */
 protected function doRequest($request)
 {
     if ($this->container === NULL) {
         throw new MissingContainerException('Container is missing, use setContainer() method to set it.');
     }
     $response = new Response();
     $this->container->removeService('httpRequest');
     $this->container->addService('httpRequest', $request);
     $this->container->removeService('httpResponse');
     $this->container->addService('httpResponse', $response);
     /** @var IPresenterFactory $presenterFactory */
     $presenterFactory = $this->container->getByType(IPresenterFactory::class);
     /** @var IRouter $router */
     $router = $this->container->getByType(IRouter::class);
     $application = new Application($presenterFactory, $router, $request, $response);
     $this->container->removeService('application');
     $this->container->addService('application', $application);
     ob_start();
     $application->run();
     $content = ob_get_clean();
     return new BrowserKit\Response($content, $response->getCode(), $response->getHeaders());
 }
Esempio n. 5
0
 public function testDIMultiInstance()
 {
     $key1 = 'hello';
     $value1 = new \stdClass();
     $key2 = 'Night';
     $value2 = new \stdClass();
     //register key1 in first instance, key2 in second instance
     $this->nette->addService($key1, $value1);
     $nette = new NetteContainer();
     $nette->addService($key2, $value2);
     $adapter = new NetteAdapter($nette);
     $this->container->provider($adapter);
     $this->assertInstanceOf('stdClass', $this->container->get($key1));
     $this->assertInstanceOf('stdClass', $this->container->get($key2));
 }
Esempio n. 6
0
 public function boot(Nette\DI\Container $container, $databaseName)
 {
     $this->windows = array();
     $this->waitForSeleniumSlot();
     $this->serviceLocator = $container;
     TesterHelpers::setup();
     // ensure error & exception helpers are registered
     $this->httpServer = new HttpServer();
     $env = (array) $this->options[self::OPTION_ENV_VARIABLES] + array($this->options[self::OPTION_ENV_PREFIX] . '_DEBUG' => '0', $this->options[self::OPTION_ENV_PREFIX] . '_SELENIUM' => '1', $this->options[self::OPTION_ENV_PREFIX] . '_DATABASE' => $databaseName, $this->options[self::OPTION_ENV_PREFIX] . '_LOG_DIR' => TEMP_DIR, $this->options[self::OPTION_ENV_PREFIX] . '_TEMP_DIR' => TEMP_DIR);
     $this->httpServer->start($this->serviceLocator->expand($this->options[self::OPTION_ROUTER]), $env);
     $httpRequest = new Nette\Http\Request($this->httpServer->getUrl(), array(), array(), array(), array(), array(), 'GET');
     $this->serviceLocator->removeService('httpRequest');
     $this->serviceLocator->addService('httpRequest', $httpRequest);
     $this->sessionFactory = new SessionFactory($this->serviceLocator, $this->httpServer, $this->options);
     $this->currentSession = $this->sessionFactory->create();
     $this->currentSession->setContext($this);
     $this->windows[] = $this->currentSession;
     if ($this->options[self::OPTION_VIDEO_ENABLE]) {
         $this->videoRecorder = new VideoRecorder(TEMP_DIR);
         $this->videoRecorder->start();
     }
 }
Esempio n. 7
0
 /**
  * @param string $method
  * @param string $path
  * @param array $headers
  * @param string|null $body
  * @return Http\Response
  */
 public function request($method, $path, array $headers = [], $body = NULL)
 {
     $this->appResponse = NULL;
     $url = new Http\UrlScript($this->baseUri . $path);
     $this->httpRequest = (new HttpRequestMock($url, NULL, [], [], [], $headers, $method, '127.0.0.1', '127.0.0.1'))->setRawBody($body);
     $this->httpResponse = new HttpResponseMock();
     // mock request & response
     $this->sl->removeService('httpRequest');
     $this->sl->addService('httpRequest', $this->httpRequest);
     $this->sl->removeService('httpResponse');
     $this->sl->addService('httpResponse', $this->httpResponse);
     /** @var Kdyby\FakeSession\Session $session */
     $session = $this->sl->getService('session');
     $session->__construct(new Http\Session($this->httpRequest, $this->httpResponse));
     /** @var Nette\Application\IPresenterFactory $presenterFactory */
     $presenterFactory = $this->sl->getByType('Nette\\Application\\IPresenterFactory');
     /** @var Application $application */
     $application = $this->sl->getByType('Nette\\Application\\Application');
     $application->__construct($presenterFactory, $this->getRouter(), $this->httpRequest, $this->httpResponse);
     $application->onResponse[] = function (Application $application, Nette\Application\IResponse $response) {
         $this->appResponse = $response;
         $this->httpResponse->setAppResponse($response);
     };
     $appRequest = $this->getRouter()->match($this->httpRequest);
     $this->onBeforeRequest($appRequest, $this->sl);
     try {
         ob_start();
         try {
             $this->appResponse = NULL;
             $application->processRequest($appRequest);
         } catch (\Exception $e) {
             $application->processException($e);
         }
         $this->httpResponse->setContent(ob_get_clean());
     } finally {
         $this->logger->log($this->httpRequest, $this->httpResponse);
     }
     return $this->httpResponse;
 }
Esempio n. 8
0
 /**
  * @return Nette\Http\User
  */
 public static function createServiceUser(DI\Container $container)
 {
     $context = new DI\Container();
     // copies services from $container and preserves lazy loading
     $context->addService('authenticator', function () use($container) {
         return $container->authenticator;
     });
     $context->addService('authorizator', function () use($container) {
         return $container->authorizator;
     });
     $context->addService('session', $container->session);
     return new Nette\Http\User($context);
 }
Esempio n. 9
0
 /**
  * @param string $name
  * @param PhServiceInterface $definition
  * @return object
  */
 public function setRaw($name, PhServiceInterface $definition)
 {
     return $this->container->addService($name, $definition);
 }
Esempio n. 10
0
	/**
	 * @param \Nette\DI\Container
	 * @return Security\User
	 */
	public static function createServiceUser(Container $container)
	{
		$context = new \Nette\DI\Container;
		$context->addService('authenticator', function() use ($container) {
			return $container->authenticator;
		});
		$context->addService('authorizator', function() use ($container) {
			return $container->authorizator;
		});
		$context->addService('session', $container->session);
		$context->addService('doctrineContainer', function() use ($container) {
			return $container->doctrineContainer;
		});
		return new Security\User($context);
	}
Esempio n. 11
0
	/**
	 * @param \Nette\DI\Container
	 * @param string
	 * @return Container
	 */
	public static function create(DI\Container $context, $sectionName = "database")
	{
		if (!isset($context->params[$sectionName])) {
			throw new \Nette\InvalidStateException("Doctrine configuration section '$sectionName' does not exist");
		}

		if (!$context->hasService('versionListener')) {
			$context->addService('versionListener', 'Nella\Doctrine\Listeners\Version', array('listener'));
		}
		if (!$context->hasService('validatorListener')) {
			$context->addService('validatorListener', function(DI\Container $context) {
				return new Listeners\Validator($context->validator);
			}, array('listener'));
		}
		if (!$context->hasService('mediaListener')) {
			$context->addService('mediaListener', function(DI\Container $context) {
				return new \Nella\Media\Listener($context->cacheStorage);
			}, array('listener'));
		}

		foreach (get_class_methods(get_called_class()) as $method) {
			if (\Nette\Utils\Strings::startsWith($method, 'createService')) {
				$name = strtolower(substr($method, 13, 1)) . substr($method, 14);
				if (!$context->hasService($name)) {
					$context->addService($name, callback(get_called_class(), $method));
				}
			}
		}
		return new static($context, $context->params[$sectionName]);
	}
Esempio n. 12
0
 /**
  * @param string $name
  * @param IMapper|callback $mapper
  */
 public function addMapper($name, $mapper)
 {
     $this->mapperContainer->addService($name, $mapper);
 }
Esempio n. 13
0
 static function createServiceUser(DI\Container $container)
 {
     $context = new DI\Container();
     $context->addService('authenticator', function () use($container) {
         return $container->authenticator;
     });
     $context->addService('authorizator', function () use($container) {
         return $container->authorizator;
     });
     $context->addService('session', $container->session);
     return new Nette\Http\User($context);
 }