Re: On abstract methods defined on traits
| From: | Levi Morrison | Date: | Fri, 03 Aug 2018 19:26:03 +0000 |
| Subject: | Re: On abstract methods defined on traits | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-103039@lists.php.net to get a copy of this message | ||
On Fri, Aug 3, 2018 at 11:09 AM Pedro Magalhães <mail@pmmaga.net> wrote:
>
> Hi internals,
>
> On the documentation about traits there is a mention to: "Traits support
> the use of abstract methods in order to impose requirements upon the
> exhibiting class." in
>
> https://secure.php.net/manual/en/language.oop5.traits.php#language.oop5.traits.abstract
>
> However, this is not true, and it has never been since traits were
> introduced (https://3v4l.org/tYAmu).
>
> There is a related bug report in
> https://bugs.php.net/bug.php?id=75449
>
> What currently happens is that (like with normal methods), the method on
> the receiving class is used and the method from the trait is simply ignored.
>
> Although this can be fixed, I wanted your opinion on it as this would be
> the only thing from traits that would impose anything on the receiving
> class and conflicts with the normal precedence rules.
>
> Regards,
> Pedro
It's partly true; an abstract method in a trait will require that the
using class to have a method of the same name but nothing else. In my
opinion the docs should be changed, not trait behavior.