Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:55894 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 12153 invoked from network); 22 Oct 2011 08:38:43 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Oct 2011 08:38:43 -0000 Authentication-Results: pb1.pair.com smtp.mail=quickshiftin@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=quickshiftin@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.214.42 as permitted sender) X-PHP-List-Original-Sender: quickshiftin@gmail.com X-Host-Fingerprint: 209.85.214.42 mail-bw0-f42.google.com Received: from [209.85.214.42] ([209.85.214.42:53160] helo=mail-bw0-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 65/50-09529-11182AE4 for ; Sat, 22 Oct 2011 04:38:43 -0400 Received: by bkbzv15 with SMTP id zv15so5968793bkb.29 for ; Sat, 22 Oct 2011 01:38:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=s05mn3V0/PB2V4HhT/D+NzjV2PEnvWY4wamfWbO/dJw=; b=Fb0GKE+4E8RGJlqKlTXjfMmw+oWE8YlGCqp6/1D6cMhpzrxfxhdUmQCuziRUSpTAEj FJpHjLzpurT063Y3bS9INdZAk8H6Df5JO3L3UOmtHCmUbvrqwGMboBquwPPvrczB4+FU rUUYPcPWGVX6wJoQtZP0MLiHaxWVXR6lFzXis= MIME-Version: 1.0 Received: by 10.204.10.67 with SMTP id o3mr12632003bko.3.1319272718487; Sat, 22 Oct 2011 01:38:38 -0700 (PDT) Received: by 10.204.35.205 with HTTP; Sat, 22 Oct 2011 01:38:38 -0700 (PDT) Date: Sat, 22 Oct 2011 02:38:38 -0600 Message-ID: To: internals@lists.php.net Content-Type: multipart/alternative; boundary=000e0cdf1326bf4f7b04afdf1d31 Subject: Revisit: Traits requiring composing class to implement interface From: quickshiftin@gmail.com (Nathan Nobbe) --000e0cdf1326bf4f7b04afdf1d31 Content-Type: text/plain; charset=UTF-8 Hi folks, With a 5.4 release right around the corner I'd like a moment of your time to reconsider this issue [1]. I've read through the original conversation [2] and would summarize the points as follows: . several folks see value in the feature . the feature would not be an impedance for people who did not wish to use it . there was only one objection which was largely subdued The common use case of pairing traits with interfaces is the case where the feature adds value. Just curious why it died on the table if several folks saw value in it, including Stephan who I gather is the primary architect of traits. The dispute regarding the feature was the merit of a 'compile time' check vs placing the burden on the developer to ensure all methods in a trait are provided by the class in which it is used. In an earlier conversation about traits Stefan said this: "Yes, Traits are meant to be compile-time only, they are not used to introduce typing relationships." Which makes me even more comfortable about the merit of another compile time check. As I argued in the original thread, the feature is merely an embellishment atop the already supported use of the 'abstract' keyword as it pertains to traits. And what if nothing else are features like PPP, abstract, interfaces etc than syntactic sugar? Plus it will save folks some typing :) [1] https://wiki.php.net/rfc/horizontalreuse#requiring_composing_class_to_implement_interface [2] http://marc.info/?l=php-internals&m=129188077704898 thanks, -nathan --000e0cdf1326bf4f7b04afdf1d31--