Example #1
0
 public function loadConfig(IContext $context, $config)
 {
     foreach ($config as $serviceName => $serviceConfig) {
         if ($context->hasService($serviceName)) {
             $context->removeService($serviceName);
         }
         $options = null;
         $singleton = isset($serviceConfig["singleton"]) ? (bool) $serviceConfig["singleton"] : true;
         if (isset($serviceConfig["arguments"]) || isset($serviceConfig["callMethods"])) {
             $service = array($this, "universalFactory");
             if (isset($serviceConfig["class"])) {
                 $options["class"] = $serviceConfig["class"];
             }
             if (isset($serviceConfig["factory"])) {
                 $options["factory"] = $serviceConfig["factory"];
             }
             if (isset($serviceConfig["arguments"])) {
                 $options["arguments"] = $serviceConfig["arguments"];
             }
             if (isset($serviceConfig["callMethods"])) {
                 $options["callMethods"] = $serviceConfig["callMethods"];
             }
             $options["context"] = $context;
         } elseif (isset($serviceConfig["factory"])) {
             $service = $serviceConfig["factory"];
         } elseif (isset($serviceConfig["class"])) {
             $service = $serviceConfig["class"];
         }
         $context->addService($serviceName, $service, $singleton, $options);
     }
 }
Example #2
0
	/**
	 * Changes router.
	 * @param  IRouter
	 * @return Application  provides a fluent interface
	 */
	public function setRouter(IRouter $router)
	{
		$this->context->addService('Nette\\Application\\IRouter', $router);
		return $this;
	}