Hi Kalle,

Thank you so much for your feedback.

I am not sure of the list etiquette.  Should I respond to all your points here 
and possibly generate a lot of emails, or ask that we move the comments to my 
Gist?

-Mike


> On Sep 6, 2019, at 1:20 AM, Kalle Sommer Nielsen <ka...@php.net> wrote:
> 
> Hi
> 
> Den fre. 6. sep. 2019 kl. 07.22 skrev Mike Schinkel <m...@newclarity.net>:
>> Thank you very much for your feedback.  You illustrated perfectly why I 
>> should not have produced that proposal in haste.
>> 
>> Your confusion was due to my first draft errors, which thanks to your 
>> feedback I have hopefully had a chance to correct. I effectively rewrote and 
>> extended the proposal which you should be able to find at the same URL:
>> 
>> https://gist.github.com/mikeschinkel/50aec7094f5643223d28674639f9f117 
>> <https://gist.github.com/mikeschinkel/50aec7094f5643223d28674639f9f117>
>> 
>> I would be greatly appreciative if you could give is a second look.
>> 
>> 
>>> All in all I do not understand the benefits of this approach compared to 
>>> Nikita’s RFC.
>> 
>> I have moved the benefits to the beginning of the document and expanded the 
>> list I elaborate on.
>> 
>> Hopefully they will be clear now?
>> 
>> 
>> -Mike Schinkel
> 
> 
> I read both versions of this and it strikes me more as a partical
> interface that is half baked by using keywords, that is not really in
> line with how the rest of PHP is designed. This sounds more like
> something that could be implemented on top of Nikita's RFC if it
> passes in userland, but anyway, here goes with my comments to this:
> 
> -- New magical methods that appear out of nowhere without an
> interface, e.g. ::type(), ::value(), ::setValue(), ::toXZY(). if these
> magical methods suddenly appear with may be varadic based on the value
> of the `types` setting, this is inconsistent to the rest of PHP.
> -- There is no mention of what happens if there is multiple `types` in
> a definition.
> -- Why is the syntax using | as a separator where all other decls is
> using a comma separated list?
> -- Nitpick The "types" decl doesn't use an ending semicolon in any of
> your examples
> -- Nitpick: Your examples in the "Accepting params into a union
> instance" section uses $this in a procedural function
> -- In the "Named Union equivalence to anonymous union" section I fail
> to see how Building2 can magically accept Building, this is based on
> properties and there is there is no mention of the ability to have (or
> not to have) multiple named unions as property types.
> -- Is this designed to be only meant for mutability (You are
> publically exposing setValue())?
> -- What happens if the class is extended?
> -- Why is it desired to implement a namespaced class instance return?
> If you are working on the object, you should already have access to
> this information it provides, no?
> -- Why is ::types() apart of the union instead of leaving that to
> reflection? No other part of PHP exposes such as a method over
> procedural functions (like get_object_vars()).
> 
> (Bear in mind I wrote this as the first in the morning)
> 
> -- 
> regards,
> 
> Kalle Sommer Nielsen
> ka...@php.net

Reply via email to