Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:35627 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 57175 invoked by uid 1010); 19 Feb 2008 23:31:05 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 57159 invoked from network); 19 Feb 2008 23:31:05 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 19 Feb 2008 23:31:05 -0000 Authentication-Results: pb1.pair.com header.from=troelskn@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=troelskn@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.198.190 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: troelskn@gmail.com X-Host-Fingerprint: 209.85.198.190 rv-out-0910.google.com Received: from [209.85.198.190] ([209.85.198.190:15386] helo=rv-out-0910.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 94/3F-55225-7B66BB74 for ; Tue, 19 Feb 2008 18:31:04 -0500 Received: by rv-out-0910.google.com with SMTP id k15so2305042rvb.23 for ; Tue, 19 Feb 2008 15:30:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=08otDjZZ1oJMe6aR1mxD39UApoVgUnX0yNY6RZa5P/I=; b=whPJweVIpsZHIJkE2+h7QttB53IUbw3+cRlXd3ciQ04L09LQDTcM0oi+CsZbtS6EDzeuvef7UdS7O/P4ufQ8MxjsaXBqJa3rrPW3DgercTzqbElRzFmmzZJqV+vnPcjwYwipYmK9iRa1K6u/FUmWoeIq8nHdGKTYG3qz55+3h74= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=lkXv6GeCk9msCV6XE0UMt4esYt/ynjGtt03Ue2LsjuA9UNRkvV1Cz2Tjo/l513EyAymllQuleeWrt4FFl68iCCE6YJBf5/wtJOwykjdpPE7RQWr5qGmZW/6FSILx1k8qZYuioIlI36dv9rSkkZgW4EA9bPjTGCz3qTagL7ARGmg= Received: by 10.140.170.12 with SMTP id s12mr5159941rve.83.1203463859503; Tue, 19 Feb 2008 15:30:59 -0800 (PST) Received: by 10.141.178.10 with HTTP; Tue, 19 Feb 2008 15:30:59 -0800 (PST) Message-ID: <98b8086f0802191530w41b9044ftfc8c1046e0ac0e4d@mail.gmail.com> Date: Wed, 20 Feb 2008 00:30:59 +0100 To: "Lars Strojny" , internals@lists.php.net In-Reply-To: <1203461114.24580.45.camel@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <001c01c87264$3c01b4e0$b4051ea0$@de> <1203461114.24580.45.camel@localhost> Subject: Re: [PHP-DEV] RFC: Traits for PHP From: troelskn@gmail.com ("troels knak-nielsen") On Feb 19, 2008 11:45 PM, Lars Strojny wrote: > I think also for > the sake of conceptual integrity separating interfaces clearly from > traits is a good idea: interfaces define structure while traits are > function buckets. A class may use traits, may implement interfaces and > may extend another class. This paradigm is pretty easy to explain to the > user. Definitely. Class inheritance (The ``extends`` keyword) inherits type + implementation. Interface inheritance (The ``implements`` keyword) inherits type (but not implementation). Traits fill the missing hole by allowing inheritance of implementation, but not type. -- troels