/** * @param IRoute $route * @param IContainer $container * * @return mixed */ public function invoke(IRoute $route, IContainer $container) { list($controller, $method) = $this->extractControllerAndMethod($route->getAction()); $this->ensureClassExists($controller); $instance = $container->get($controller); $this->ensureMethodExists($instance, $method); return $container->callMethod($instance, $method, $route->getParameters()); }
/** * @param $subscriber * @param IEvent $event */ protected function invokeSubscriber($subscriber, IEvent $event) { $this->container->callMethod($subscriber, 'handle', ['event' => $event]); }
/** * @param object $provider * @param IDictionary $shared */ public function shutdown($provider, IDictionary $shared) { $this->container->callMethod($provider, 'shutdown', ['shared' => $shared]); }
/** * @param object $handler * @param IInput $input * @param IOutput $output * @param IConsole $console * * @return mixed */ public function run($handler, IInput $input, IOutput $output, IConsole $console) { return $this->container->callMethod($handler, 'run', ['input' => $input, 'in' => $input, 'output' => $output, 'out' => $output, 'console' => $console]); }
/** * @param $handler * @param $command * * @return mixed */ protected function invokeHandler($handler, $command) { return $this->container->callMethod($handler, 'handle', ['command' => $command, 'task' => $command]); }