context pre potomka Application?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Matúš Matula
Člen | 257
+
0
-

Skusil som nasadit novu verziu nette [doteraz som tvoril na 2 tyzdne starej verzii] na projekt, v kt. pouzivam MyApplication ako potomka Application. Problemom sa zda byt $context, ale mudry z toho nie som.

samotna MyApplication pre ucely testovania iba dedi, nic ine

<?php
class MyApplication extends Application {}
?>

v configu
service.Nette-Application-Application = MyApplication

problem

Pri snahe ziskat router

<?php
$application = Environment::getApplication();
$router = $application->getRouter();

?>

hodi vynimku
Call to a member function getService() on a non-object
v Application.php

<?php
public function getRouter()
{
	return $this->context->getService('Nette\\Application\\IRouter');
}
?>

Vie ma niekto nasmerovat ako to riesit alebo je to bug?

pekelnik
Člen | 462
+
0
-

@matůš: Aplikace se dříve vytvářela trochu jinak… v současné době je pro její vytvoření potřeba metoda Configurator::createApplication() – tam najdeš potřebné informace :)

Celé to ale ještě není finální… takže prozatím nelze příliš update doporučit.

na podobné téma viz: https://forum.nette.org/…ave-orechove

Matúš Matula
Člen | 257
+
0
-

Vdaka za info

maikoo
Člen | 21
+
0
-

..tzn. změnu „class application“ můžu udělat pouze úpravou souboru z Nette knihovny? :-/

konkrétně Configurator::createApplication()

Editoval maikoo (3. 2. 2011 14:15)

Filip Procházka
Moderator | 4668
+
0
-

Proč bys to měnil? Můžeš to přeci podědit.

Navíc Nette od té doby, než zastaralo tohle téma, přijalo další option do createApplication

service.Nette-Application-Application.option.class = MyApplication

takhle si můžeš specifikovat vlastní třídu pro application a Nette ji použije v createApplication

maikoo
Člen | 21
+
0
-

HosipLan napsal(a):

Proč bys to měnil? Můžeš to přeci podědit.

Navíc Nette od té doby, než zastaralo tohle téma, přijalo další option do createApplication

service.Nette-Application-Application.option.class = MyApplication

takhle si můžeš specifikovat vlastní třídu pro application a Nette ji použije v createApplication

tohle jsem potřeboval.. díky