Re: [RFC] Lazy Objects

From: Date: Mon, 15 Jul 2024 19:42:03 +0000
Subject: Re: [RFC] Lazy Objects
References: 1 2 3 4 5 6 7 8 9 10 11 12 13  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
Hi

On 7/15/24 09:25, Nicolas Grekas wrote:
Testing is actually a good domain where resetting lazy objects might open interesting use cases. This reminded me about zenstruck/foundry, which leverages the LazyProxyTrait to provide refreshable fixture objects <https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#auto-refresh> and provides nice DX thanks to this capability.
I have not used this library before, but I have taken a (very) brief look at the code and documentation. My understanding is that all the fixture objects are generated by a corresponding Factory class. This factory clearly has the capability of constructing objects by itself, so it could just create a lazy proxy instead? I'm seeing the instantiateWith() example in the documentation where the user can return a constructed object themselves, but I'm not seeing how that can safely be combined with the reset*() methods: Anything special the user did to construct the object would be reverted, so the user might as well rely on the default construction logic of the factory then. What am I missing? Best regards Tim Düsterhus

Thread (95 messages)

« previous php.internals (#124436) next »