Pár postřehů začátečníka

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

Tak jsem se jako úplný laik pokusil „osedlat“ NETTE, a narazil jsem na pár drobností. Podělím se, třeba to někomu pomůže, nebo s tím David něco udělá, aby uetřil práci ostatním začínajícím:

  1. Perzistentní parametry: Víme, je o to řeč tady: https://forum.nette.org/…-bez-anotaci

Jenže v příkladech (jako je třeba akrabat.forms) se vesele používají anotace, ke zděšení všech, co mají na serveru eAccelerator (a třeba o tom ani netuší). Chyba se hledá dlooooouho.

  1. A pak jsem měl docela solidní zákys při nahrání na produkční server. Protože ladění jsem měl vypnuté a byla tam nějaká chyba, došlo na řádky
<?php
Debug::processException($e, FALSE);
echo "<title>500 Internal Server Error</title>\n\n<h1>Server Error</h1>\n\n",
"<p>The server encountered an internal error and was unable to complete your request. Please try again later.</p>";
break;
?>

v souboru Application.php.

Jenomže: To, co nebohý vystresovaný kodér uvidí v prohlížeči je natolik podobné chybě, kterou hází Apache (třeba při špatném .htaccessu), že – přiznám se – mě vůbec nenapadlo hledat chybu uvnitř aplikace, ale v konfiguraci serverového prostředí. Proč ta hláška nemůže vypadat tak, aby z ní bylo poznat, že zdrojem problémů je NETTE a ne server?

Ondřej Mirtes
Člen | 1536
+
0
-

xzajic napsal(a):

  1. A pak jsem měl docela solidní zákys při nahrání na produkční server. Protože ladění jsem měl vypnuté a byla tam nějaká chyba, došlo na řádky
<?php
Debug::processException($e, FALSE);
echo "<title>500 Internal Server Error</title>\n\n<h1>Server Error</h1>\n\n",
"<p>The server encountered an internal error and was unable to complete your request. Please try again later.</p>";
break;
?>

v souboru Application.php.

Jenomže: To, co nebohý vystresovaný kodér uvidí v prohlížeči je natolik podobné chybě, kterou hází Apache (třeba při špatném .htaccessu), že – přiznám se – mě vůbec nenapadlo hledat chybu uvnitř aplikace, ale v konfiguraci serverového prostředí. Proč ta hláška nemůže vypadat tak, aby z ní bylo poznat, že zdrojem problémů je NETTE a ne server?

To je právě účel, aby Laděnka nic nevykecala. Že za to může něco v Nette zjistíš podle HTTP hlavičky X-Powered-By, případně si nakonfiguruj Debug v bootstrapu, aby se ti posílal mail. Při existenci složky app/log/ se chyby logují tam.

xzajic
Člen | 19
+
0
-

Ale jasně, chápu princip i si s tím teď už dovedu poradit. Ale proč to aspoň není jinou barvou, nebo trochu jiný text … aby bylo poznat, že není Apache misconfiguration ;-))) Já si upravil Application.php v tomto smyslu. Žádný problém, jen že by to začátečníka mohlo mást.

Mas3r
Člen | 116
+
0
-

Stačí nastavit errorPresenter.

Jakub Šulák
Člen | 222
+
0
-

To ale právě začátečník asi nebude vědět jak…

David Grudl
Nette Core | 8228
+
0
-

pokusil jsem se obojí upravit