Hello internals, I'd like to introduce an RFC proposing the addition of generic types and functions:
https://wiki.php.net/rfc/generics Ben Scholzen started this RFC as a quick draft with a few code samples in August last year, and I have since then worked with Dominic and Ben towards a more complete, detailed RFC. There are a few holes still, which is why it hasn't moved from Draft to Under Discussion yet, but we feel that it's complete enough that we can start a discussion about this feature and try to iron out the remaining details. The RFC was previously "unofficially" announced on reddit - this thread generated some good questions and may answer some of the most immediate questions: https://www.reddit.com/r/PHP/comments/3zx8qs/php_rfcgenerics_update_03_please_comment/ One of the most common criticisms we've heard, is that the syntax would be hard to implement, a few have said "impossible" - but we feel that, if generics are introduced, it's important that the syntax and features be as familiar as possible to developers who are experienced with other mainstream web industry languages, such as C# and Java. To that end, Dominic Grostate has worked through most of the tokenizer/parser issues - save for one very exotic edge case, his fork demonstrates that the proposed syntax can be parsed: https://github.com/orolyn/php-src/commits/generics Note that this fork is by no means an implementation of generics - it is proof of concept as far as being able to parse the syntax. We're hoping to find someone, with more experience working on the php codebase, who is willing to collaborate on further implementation - and we do also have a partial test-suite, defining the big picture expectations for most of the proposed language features: https://github.com/orolyn/php-src/tree/generics-tests/Zend/tests/generics We look forward to your comments, questions and (I'm sure) criticisms of this proposal! Thank You, Regards, Rasmus Schultz -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php