Apologies for the super late response:

> A recursive method would certainly have more value, because it actually
> does something more than translate one syntax to another. On the other
> hand, the use case that comes to mind is serialization, and we already have
> more specific methods and systems for that.

How could this new magic method be recursive? If it only works if you manually 
declare __toArray() in your class, wouldn't you then as the user be in charge 
of casting anything manually in your method implementation?

> 
> I guess that's what it comes down to, what *specific* use cases would this
> feature be intended to help with? Is there some code of your own that
> inspired you to propose it, or something you've seen publically that would
> benefit from it?

Originally, it was inspired by seeing Laravel's use of Arrayable as an 
interface and if something implements that, calling that class' `toArray()` 
method, and wishing that was built in so that frameworks didn't re-invent the 
wheel every time. 

As far as in my code, collections being cast as an array easily would be nice. 
Models with relationships, being able to implement that cast and control how 
your model and its children are (or aren't) represented. That's useful for 
returning an array in a controller for an API, or for simply adding context to 
a log message.

IMO, the point is, it's another tool in the developers arsenal that they can 
use when they see fit. Not everyone will use it and not everyone will see the 
benefit of it, and that's ok, but for those that would and could, __toArray() 
is for them (and me).

--
Steven Wade
stevenwad...@gmail.com




--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to