Tracy – vypnutí posílání notice
- motorcb
- Člen | 552
Ze serveru mi chodí emailem chyba:
PHP Warning: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time in /data/web/virtuals/151319/virtual/www/subdom/help/vendor/nette/http/src/Http/Session.php:394
Je tam nějaký bordel v knihovnách. Nedaří se mi opravit příčinu. Opravím alespoň následek :-) Aplikace normálně funguje.
Jak zakážu aby Tracy posílal warning emailem?
Vyčetl jsem že by to mělo být příkazem: Tracy\Debugger::$strictMode = E_ALL & & ~E_USER_NOTICE
Ale kam to zapsat? Mám Nette 3.0
Díky :-)
- Marek Bartoš
- Nette Blogger | 1280
Neopravil bys následek, jen bys ho ignoroval. Navíc je to celkem vážná chyba, ač to php považuje jen za warning. Nejspíš ti nefunguje nějaká komponenta využívající session.
Opravit to můžeš tak, že z bluescreenů, které ti Tracy ukládá do
složky s logy zjistíš, s jakým presenterem se chyba děje a nejpozději v
beforeRender()
session nastartuješ. Komponenta využívající
session by ideálně měla ověřit, zda je session nastartovaná a pokud není,
tak se bez ní buď obejít a nebo vyhodit výjimku vysvětlující, že ji
potřebuje.
Případně může být problém ještě v tom, že se někde vykresluje stránka dřív, než v render() a s tím by ti měl pomoc OutputDebugger z Tracy. Ten aktivuješ v Bootstrapu.
Jinak to nastavení Tracy bys dal též do Bootstrapu, ale není dobrý nápad řešit tvůj problém takto.
Editoval Mabar (28. 4. 2021 16:29)
- motorcb
- Člen | 552
Kámo díky, problém byl v tom že se render() vykreslil dříve než
session.
Podle bluescreenu jsem rychle našel, kde je problém.
Díky moc! Máte u mne pivo :-)
Marek Bartoš napsal(a):
Neopravil bys následek, jen bys ho ignoroval. Navíc je to celkem vážná chyba, ač to php považuje jen za warning. Nejspíš ti nefunguje nějaká komponenta využívající session.
Opravit to můžeš tak, že z bluescreenů, které ti Tracy ukládá do složky s logy zjistíš, s jakým presenterem se chyba děje a nejpozději v
beforeRender()
session nastartuješ. Komponenta využívající session by ideálně měla ověřit, zda je session nastartovaná a pokud není, tak se bez ní buď obejít a nebo vyhodit výjimku vysvětlující, že ji potřebuje.Případně může být problém ještě v tom, že se někde vykresluje stránka dřív, než v render() a s tím by ti měl pomoc OutputDebugger z Tracy. Ten aktivuješ v Bootstrapu.
Jinak to nastavení Tracy bys dal též do Bootstrapu, ale není dobrý nápad řešit tvůj problém takto.
- Marek Bartoš
- Nette Blogger | 1280
@motorcb Není zač. Je to dost častý problém, též jsem na něj mnohokrát narazil, než jsem si zvykl. Mám o tom teď rozepsaný dost obsáhlý článek na nette blog, circa během týdne vyjde :)
Až budou posoboty místo online zase v Praze, tak jsem pro pivo. Ale kdybys chtěl podpořit tvorbu opensource a tím i moje příspěvky do Nette, tak je to možné
Editoval Marek Bartoš (1. 5. 2021 13:51)