On Tue, 16 Dec 2025 at 02:58 Dmitry Derepko <[email protected]> wrote:
> > > > On Dec 16, 2025, at 1:19 AM, Larry Garfield <[email protected]> > wrote: > > > > On Thu, Dec 4, 2025, at 10:46 AM, Larry Garfield wrote: > >>> On Tue, Nov 4, 2025, at 2:13 PM, Larry Garfield wrote: > >>> 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. :-) > >> > >> More updates to Context Managers: > >> > >> * We have added "masking" for the context variable, using essentially > >> the same technique as the block scope RFC. > >> * We have added support for `try using`, as a shorthand for when you > >> want to wrap a try-catch-finally around a using statement anyway. > >> > >> More details of both are in the RFC. > >> > >> As no one seems to have a strong opinion on `continue`, we will most > >> likely proceed with the current approach of matching `switch` behavior. > >> > >> There doesn't seem to be much interest in making `using` an expression, > >> which I find unfortunate, but that means we'll probably drop that. > >> Fortunately it is probably possible to change in the future if the need > >> arises (the way `throw` was changed). > >> > >> --Larry Garfield > > > > Since the only feedback on what to use for "as" was that => makes sense, > we have changed the RFC to use => instead. So the new syntax is > > > > using (new CM() => $cVar) { > > // Do stuff here. > > } > > > > --Larry Garfield > > > I’d ask you to get back to “use” keyword, despite of it’s in use in > Laravel or somewhere else. > As a developer I cannot even imagine what “use” could mean in web > frameworks context, I hope it could have a better name and at the same time > we can advise to use namespaces if you don’t want to get something broken > after upgrading language. > Just my 5 cents. > > > -- > Best regards, > Dmitrii Derepko. > @xepozz I have considered asking the same thing in this thread. I have used Laravel everyday for the last decade and I know how Laravel with helper works. The reason I decided not to voice this out is because Larry said that even if Laravel used namespaces it would still not work because the word would be reserved. I’m sure it wouldn’t be the end of the world to refactor billions of lines of code across the industry for a namespace, but for an entire rename of the function I guess we’re between a rock and a hard place anyway. Plus, I kind of got used to using fairly quickly. >
