[RFC] Context Managers
| From: | Larry Garfield | Date: | Tue, 04 Nov 2025 20:13:18 +0000 |
| Subject: | [RFC] Context Managers | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-129077@lists.php.net to get a copy of this message | ||
Arnaud and I would like to present another RFC for consideration: Context Managers.
https://wiki.php.net/rfc/context-managers
You'll probably note that is very similar to the recent proposal from Tim and Seifeddine. Both
proposals grew out of casual discussion several months ago; I don't believe either team was
aware that the other was also actively working on such a proposal, so we now have two. C'est
la vie. :-)
Naturally, Arnaud and I feel that our approach is the better one. In particular, as Arnaud noted in
an earlier reply, __destruct() is unreliable if timing matters. It also does not allow
differentiating between a success or failure exit condition, which for many use cases is absolutely
mandatory (as shown in the examples in the context manager RFC).
The Context Manager proposal is a near direct port of Python's approach, which is generally
very well thought-out. However, there are a few open questions as listed in the RFC that we are
seeking feedback on.
Discuss. :-)
--
Larry Garfield
larry@garfieldtech.com