-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 First off: I like the idea of a trait being able to implement an interface and having PHP validating that because I am like Larry and prefer language construct over comments.
On 2/18/2016 4:11 PM, Chase Peeler wrote: > > I agree, in theory, but I also think we introduce confusion. Every > other OO rule says you get "everything*" from what you are using > (extending a subclass gets you all the parent classes, implementing > an interface that extends an interface gets you the parent > interface, using a trait that uses a trait gets you both traits, > etc). [...] > I disagree on this. Traits are already special and adding interface support to them that are not automatically inherited does not yield confusion from my point of view. Most people will have a hard time understanding them in the first place. Again, traits are "reusable dead code" that don't do anything on their own. Hence, if they suddenly start doing anything other it gets weird. The class has to decide and only the class and it must be opt-in and not opt-out because this becomes a conscious decision rather than: "Dafuq, why is object A going through the method with the type hint against interface B although it does not implement it? Oh, a trait... Well I guess I need to **unimplement** the interface then." This is crying out loud for unintended bugs in software. - -- Richard "Fleshgrinder" Fussenegger -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWxguAAAoJEOKkKcqFPVVr17QP/2iYhhv3dndfURkA/RW0lSTr CTN6gkIxDSEoGOzxk0HXAL6D9jgXOqhfsavWFLd0bdS12+2tfbi4+tz1VSGhBGoD fIYyvOh6gx7nnI4p8v7PTegaWPb2xuKf6D7+ogpFHH0PSi27gTV1Rgh6m/kdnH7+ wMKKybl7k1e85LEGNTs0PpXYRKNBKMK6EuoiQjbT3gPMle3ZQZYEDttOVHSKUmoO heu0IHEkunzE7MtTMujqj6xgR2X3ce2SfXVsxLR3J0pBh7nFyfcm21tDz7a5gLE6 3qisBhjVBjAU9tAO1mbLJWzHGcyDLCBSncFJfpVgbi5I2OYyrsMCIy8fvMxAW6C3 zeP1kSVz2VHPQpG6vpwapSIPLB2bkGKxd8o2c9QM+RaF4c6gwNi6PWPYI2t/w8TH iAq0jvQFdpRBAGpUyRpYrQ2/0clYLkl2qC/PRtA7SB19/Vsq3rROWqN0uKFtTb4K iNHE7+9CQV8n/p0/DUm99wW42IGM+5bXGNcY7a+DWhC+eJsF7a8BohvUWay5sL4h KZZ4VT8Khp5vbP3gpz7z8ugNMuFcIHkvJnUYR4QD9J1Ml5VpGH1pCw1uqKCN0qFX pzmo84og2xVr+r1OJ5DjSbXQE6WDSMvuhmpayZWOfxPa7a80KqYkl9pczQRAHz6X DvoLGPdq7s2rpknUYS84 =9OHz -----END PGP SIGNATURE----- -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php