Re: Generics proposal
| From: | Michael Stowe | Date: | Sat, 20 Oct 2012 21:09:50 +0000 |
| Subject: | Re: Generics proposal | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-63575@lists.php.net to get a copy of this message | ||
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 <rasmus@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
>