Re: Re: [RFC] Traits with interfaces
| From: | Larry Garfield | Date: | Thu, 18 Feb 2016 10:35:00 +0000 |
| Subject: | Re: Re: [RFC] Traits with interfaces | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-91263@lists.php.net to get a copy of this message | ||
On Wed, Feb 17, 2016, at 01:05 PM, Kevin Gessner wrote:
> On Wed, Feb 17, 2016 at 9:25 AM, Kevin Gessner <kgessner@etsy.com> wrote:
>
> > Hello internals team! I'd like to propose an RFC to allow traits to
> > implement interfaces.
> >
>
> I've created a proper RFC wiki page here with the draft:
> https://wiki.php.net/rfc/traits-with-interfaces
>
> It includes more detail and several example code snippets. Thanks all
> for
> your feedback so far.
Thanks, Kevin.
At the risk of a "me too" post, I would also be in favor of allowing
traits to declare an interface but NOT in favor of a use-ing class
implicitly implementing the interface as a result. I'd rather the class
still need to self-declare the interface; that it uses a trait to
fulfill that contract is irrelevant to the outside world.
At that point, the benefit becomes two-fold:
1) Communicate to users of the trait what the intent of the trait is: To
provide the boilerplate for some interface, or portion thereof. This
could be covered by PHPDoc, potentially, and I've suggested the same for
PSR-5 before.
2) Ask the engine to do a syntax check on the class to make sure I did
not forget something or screwed up in some way. That is, not fulfilling
the interface on the trait would cause a parse error (or an error in my
IDE), forcing me to fix my bug before I even try running it. PHPDoc
would NOT have this benefit.
Thus I feel this addition does have value that a PHPDoc alternative
would not.
--Larry Garfield