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