public function createXTestingDataGrid() { $presenterFactory = new Nette\Application\PresenterFactory(); $presenterFactory->setMapping(['*' => 'Ublaboo\\DataGrid\\Tests\\Files\\*Presenter']); $presenter = $presenterFactory->createPresenter('XTesting'); $url = new Http\UrlScript('localhost'); $request = new Http\Request($url); $response = new Http\Response(); $session = new Http\Session($request, $response); $presenter->injectPrimary(NULL, NULL, NULL, $request, $response, $session); return new DataGrid($presenter, 'XTestingGrid'); }
public function invoke(PresenterFactory $fact) { /** @var Homepage $presenter */ $presenter = $fact->createPresenter('Homepage'); $ref = new \ReflectionProperty(Presenter::class, 'globalParams'); $ref->setAccessible(TRUE); $ref->setValue($presenter, []); $args = []; foreach ($this->in->getVariadics() as $part) { list($key, $val) = explode('=', $part); $args[$key] = $val; } $link = $presenter->link($this->in->getArgument('target'), $args); $this->out->writeln($link); }
/** * Create new presenter instance. * @param string presenter name * @return IPresenter */ public function createPresenter($name) { $presenterName = $this->formatServiceNameFromPresenter($name); if (isset($this->presentersByName[$presenterName])) { $presenter = $this->container->getService($presenterName); $presenter = $presenter instanceof Callback ? $presenter->invoke() : $presenter; } else { if (isset($this->presentersByName[$presenterName . 'Factory'])) { $presenter = $this->container->getService($presenterName . 'Factory')->invoke(); } else { return parent::createPresenter($name); } } foreach (array_reverse(get_class_methods($presenter)) as $method) { if (substr($method, 0, 6) === 'inject') { $this->container->callMethod(array($presenter, $method)); } } return $presenter; }
/** * @param string $name * @return IPresenter|UI\Presenter */ public function createPresenter($name) { return $this->presenterFactory->createPresenter($name); }
/** * @param string $name * @return \Nette\Application\IPresenter */ public function createPresenter($name) { $this->getPresenterClass($name); return $this->presenterFactory->createPresenter($name); }