error handling v aplikacii bez presenterov
- pogo
- Člen | 29
Zdravim,
kombinujem Nette aplikaciu s REST frameworkom Tonic. Moj bootstrap vyzera
teraz takto:
<?php
// Load Nette Framework
require LIBS_DIR . '/Nette/loader.php';
// Configure application
$configurator = new Nette\Config\Configurator;
// Enable Nette Debugger for error visualisation & logging
//$configurator->setDebugMode($configurator::AUTO);
//$configurator->setDebugMode();
$configurator->enableDebugger(__DIR__ . '/../log');
// Enable RobotLoader - this will load all classes automatically
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(APP_DIR)
->addDirectory(LIBS_DIR)
->register();
// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');
$container = $configurator->createContainer();
?>
Zvysok je uz tonicovsky dispatch.
V takomto priade pokial nastane chyba, tak mi aplikacia vrati bud ladenku alebo
produkcnu hlasku podla toho, ako mam nastaveny debug mode. Chcel by som ale, aby
mi aplikacia iba vracala json s adekvatnou hlaskou. V aplikacii nepouzivam
ziadne prezentery, vsetko routuje dispatch na tonicovske resource, co funguje
pekne.
Diky.
- LeonardoCA
- Člen | 296
Nějak z toho nerozumím o co ti jde – nechceš vůbec laděnku a produkční hlášku? Tak nezapínej Debugger a zachyť si chyby sám přes Tonic Error handling jak píšou na přímo na Githubu úplně dole. V tom případě vlastně ani nemusíš Debugger vypínat a Tonic\Exception se k němu nedostanou.
Nebo to myslíš nějak jinak? Co vlastně využíváš z Nette?
- pogo
- Člen | 29
Z nette by som potreboval vyuzivat napriklad logovanie ladenky do suboru,
nette database, autentifikator, konfiguraciu v neone. Debugger ked uplne
vypnem, tak logovanie do suboru stracam. Jednoducho co potrebujem, aby namiesto
spravy Server Error...
co je standardne v produkcnom mode,
zobrazilo json, teda napriklad custom template alebo by aj stacilo, ak by sa
dala zadefinovat url, na ktoru sa presmeruje v pripade chyby a uz to osetrim
tonicom.