Redirect v routeru při debug módu

- Petr Hanák
 - Člen | 10
 
Ahoj,
mám vlastní router, některé požadavky chci přesměrovat jinam – např.
example.com na example.cz (detekce jazyků podle nastavení prohlížeče).
Zatím mám přesměrování řešené přes Nette\Http\Response, metodou redirect. Funguje to ale jen v případě production módu, dokud nezapnu debugbar. Přesměrování z presenteru $this->redirectUrl(…) proběhne v pořádku.
Problémy nejspíš dělá $container->enableDebugger(…), ale bez něj se mi zase nebudou logovat chyby.
Jak tedy správně přesměrovat z routeru, aby to fungovalo spolu s Tracy?
Díky

- Petr Hanák
 - Člen | 10
 
pokud mám zaplý debug mód, tak se kód debugbaru odešle ještě před routováním, takže dostávám chybu
Possible problem: you are sending a HTTP header while already having some data in output buffer. Try OutputDebugger or start session earlier.
OutputDebugger jsem samozřejmě zkoušel, data se odesílají na již
zmiňovaném enableDebugger.

- Michal Vyšinský
 - Člen | 608
 
Ukaž kód, jak zapínáš ten debugger. (Možná celý bootstrap rovnou). Někde tam bude nějaká chyba…

- Petr Hanák
 - Člen | 10
 
require ROOT_DIR . "/private/vendor/autoload.php";
$configurator = new Nette\Configurator;
$configurator->setDebugMode('1.2.3.4'); //development IP address
$configurator->enableDebugger(ROOT_DIR . "/private/log");
$configurator->setTempDirectory(ROOT_DIR . "/private/temp");
$configurator->createRobotLoader()
	->addDirectory(ROOT_DIR . "/private/app")
	->addDirectory(ROOT_DIR . "/private/vendor/others")
	->register();
$configurator->addConfig(ROOT_DIR . "/private/app/system/config.neon");
$container = $configurator->createContainer();
return $container;
				
- Michal Vyšinský
 - Člen | 608
 
Existuje složka /private/log? je zapisovatelná? Normální načtení stránky ti chybu neháže?

- Petr Hanák
 - Člen | 10
 
normální zobrazení – tj. bez debugbaru je v pořádku
abych minimalizoval své chyby, tak jsem si vzal čistý sandbox a upravil pouze potřebné
bootstrap.php
...
$configurator = new Nette\Configurator;
$configurator->setDebugMode(TRUE);//povolený debug
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
...
RouterFactory.php
<?php
namespace App;
use Nette,
	Nette\Http\Response;
class RouterFactory implements Nette\Application\IRouter
{
	function match(Nette\Http\IRequest $httpRequest)
	{
		$r = new Response();
		$r->redirect("http://google.com");
		exit;
	}
	function constructUrl(Nette\Application\Request $appRequest, Nette\Http\Url $refUrl)
	{
	}
}
config.neon
...
services:
	- App\Model\UserManager
	router: App\RouterFactory
				
- Petr Hanák
 - Člen | 10
 
chyba je nejspíš v souboru Tracy\templates\bar.phtml
vypisují se tam data mimo buffer – bug?