> I think you're also greatly over-estimating how large the startup cost is in
> practice. It's real, certainly, but unless you have several nested
> microservices a well-made framework should have a fairly small overhead.
I want to share my experience that some users have very slow file I/O,
and I regularly see `file_exists` and `stat` show up in slow code
paths. This is one reason I would like to remove the warning on a
failed `include`, because then instead of `if (file_exists($file))
require $file;` or similar, you can just `include $file;` it. When I
brought it up last time, some people actually liked that it has
warnings so... I didn't move forward. Maybe there's room for
`try_include`:
[$included, $retval) = try_include($file);
if ($included) {
// $retval will have the return value of the file
} else {
// $retval will have a warning/error message you can work with
}
I like this quite a bit less than changing `include` to not emit a
warning, but it's not without merits:
1. `include` still emits a warning, so nobody relying on that will be
surprised.
2. User gets to control error handling.
3. Can be polyfilled, it just costs a bit of performance.
Anyway, it's a bit off topic, so I'll stop here.
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php