Logování 404 stránek v databázi

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

Ahoj,

Píšu modul, který by měl umět odchytávat stránky 404 v aplikaci. Při 404 se podívá do databáze a pokud adresa neexistuje, vytvoří záznam a vyhodí klasicky 404. Pokud existuje, zvýší počet přístupů o 1 a pokud je nastaven redirect, provede přesměrování na novou adresu, jinak opět 404.

Přetížil jsem si metodu error() v basePresenteru, zde mi všechno funguje.

Chci ale chytat také adresy, které nevezme žádný router. Vytvořil jsem si tedy vlastní router s pravidlem .+ a dal ho jako poslední. Pokud se na něj aplikace dostane, jde o stránku 404.

Problém je v tom, že mi ten router pouští také DebugBar. To znamená, že na vývojovém prostředí se mi logují všechny adresy, i když nejde o 404.

Nějaký lepší nápad, jak (kde) toto udělat, případně jak ošetřit Debug bar? :) Díky

Jan Tvrdík
Nette guru | 2595
+
0
-

@Maxell92: Mnohem lepší řešení je to logovat v error presenteru.

Maxell92
Člen | 38
+
0
-

Aha, díky. Přes ten projdou všechny 404, tedy i pokud si v presenteru zavolám $this–>error()?