> > Why is there a 15 byte limit in the first place?
> 
> Presumably it might be so that multi-megabyte strings are not dumped
> to the console when printing out a stack trace. (Disclaimer: I have
> not touched the relevant code and am just guessing.)

It apparently dates back to 2003, when exception::getTraceAsString() was first 
added.
https://github.com/php/php-src/commit/c80eb4573f8cbc268463c7ec233b467bd9b36b0f#diff-16cc0fb22dbf90c4c465180255880ea0R167
Arguably, computers have more disk space and better processors.

The reasons I can think of to keep a low default limit:
- Syslogs might use udp for async logging, which has a limit of 4096 bytes or 
so, which hasn't changed
- Code might truncate before logging an exception, and shorter argument 
representations would allow logging more frames of the stack trace
- Code might log exceptions to disk during abnormal events (e.g. network 
outages), and too high of a default would fill up disks faster
- CLI apps might fill up the entire screen or terminal scrollback buffer with 
megabyte-long strings (e.g. `string $file_contents`)

- Tyson
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to