Hi Nikita, What you're asking for is useful in other languages, but it doesn't match the style of PHP which is to be a quick and easy type-less scripting language.
What you're proposing is clearly more suited to something like Java or C#, but doesn't really belong here. I'd also hate to see this anywhere near PHP. Many thanks, Paul. On Sat, Oct 20, 2012 at 11:10 PM, Marco Pivetta <ocram...@gmail.com> wrote: > On 20 October 2012 23:09, Michael Stowe <mikegst...@gmail.com> wrote: > > > I see what you're trying to do but not a big fan of how it's being > > implemented in the example given. > > > > - Mike > > > > Sent from my iPhone > > > > On Oct 20, 2012, at 4:02 PM, Rasmus Lerdorf <ras...@lerdorf.com> wrote: > > > > > On 10/20/2012 01:59 PM, Nikita wrote: > > >> Hello, list. I want to propose generics. For those, who don't know > what > > it is, here's example: say we have a Comment class, that has a method > > getBody. Also we have Collection class, that implements Traversable. Now, > > if I want to validate all insertions into collection of comments, I would > > need to create CommentCollection class, extend it from Collection, and > > override all the methods that are dealing with adding new elements to > > collection. Moreover, I can't have any hints from my IDE about type of > > collection's elements, so if I'll have code like this: > > >> foreach ($commentCollection as $comment) { > > >> $comment->getBody(); > > >> } > > >> There will be no way for IDE to know, of what type that object will > be. > > >> > > >> But there's how I could solve my problem with generics: > > >> class Collection<T> implements Traversable > > >> { > > >> ... > > >> public function add(T $element){} > > >> } > > >> $collection = new Collection<Comment>(); > > >> > > >> $collection->add(new Comment()); > > >> > > >> $collection->add("that will be error"); > > >> > > >> Actually, that's, again, all about type hinting. If we went so far > with > > scalar type hinting, then generics would also be a good addition. > > >> > > >> So, what you think? > > > > > > Personally I would hate to see this anywhere near PHP. > > > > > > -Rasmus > > > > > > > > > -- > > > PHP Internals - PHP Runtime Development Mailing List > > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > -- > > PHP Internals - PHP Runtime Development Mailing List > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > Well, the example just shows what I've already got used to when working > with Java. > I like it and it would be of great help to me (especially in reducing the > amount of code to be tested), but there's a lot more around that, like > multiple generic types (new Map<Comment, User>()) and how reflection would > deal with it... > > Marco Pivetta > > http://twitter.com/Ocramius > > http://ocramius.github.com/ >