Hello all,
I'll start by saying I've been lurking for about six weeks and reading
everything on the list since then although I was on the list for a short period
many years ago.
I recently took on a role as "WordPress Engineering Team Lead" and as such have
gotten much more interested in revisiting PHP's feature set hence why I
rejoined the list. I've been working with PHP for 12 years, programming
professionally for 32 years and GoLang the last 1+ years. So while I specialize
in WordPress and PHP/MySQL, my experience has been in other frameworks and
languages for most of my professional programming career.
I have been planning to write up an RFC regarding union types, but had not
found the time. Seeing that Nikita has started a new RFC for Union Types v2 —
how do you all keep up with that guy?!? — I realized that I better get these
ideas at somewhat documented and presented or the train will have fully left
the station.
What I am proposing can be layered on top of Nikita's proposal, and was
influenced by what I have learned using Go. It is not a Go feature, but
inspired by the Go interface{} type (which is a very different concept compared
to interfaces in PHP, btw.)
It is a straw man proposal which means it is not a fully-fleshed out RFC, but
if I waited until I had the time to write an RFC then PHP 8 might already be
out:
Without further ado:
https://gist.github.com/mikeschinkel/50aec7094f5643223d28674639f9f117
<https://gist.github.com/mikeschinkel/50aec7094f5643223d28674639f9f117>
Since I'm effectively new to the list this time please go easy on me? :-)
Thanks in advance for all your consideration.
-Mike Schinkel