nette / latte

☕ Latte: the safest & truly intuitive templates for PHP. Engine for those who want the most secure PHP sites.
https://latte.nette.org
Other
1.13k stars 109 forks source link

varPrint and templatePrint are not working with renderToString #324

Open Khartir opened 1 year ago

Khartir commented 1 year ago

Version: 3.0

Bug Description

Adding {varPrint} or {templatePrint} to a template that is rendered with renderToString creates an empty output.

Expected Behavior

Actual output of {varPrint} or {templatePrint} is sent.

Possible Solution

The cause for this bug is the start of an output buffer in Template::capture that is than discarded due to the printers calling exit.

Instead of calling exit a custom exception could be thrown, that is caught in Template::capture to output the current buffer and exit then. It could also be caught in Engine::render and to just call exit there.