Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:95918 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 44482 invoked from network); 11 Sep 2016 20:04:45 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Sep 2016 20:04:45 -0000 Authentication-Results: pb1.pair.com smtp.mail=larry@garfieldtech.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=larry@garfieldtech.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain garfieldtech.com from 66.111.4.28 cause and error) X-PHP-List-Original-Sender: larry@garfieldtech.com X-Host-Fingerprint: 66.111.4.28 out4-smtp.messagingengine.com Received: from [66.111.4.28] ([66.111.4.28:33191] helo=out4-smtp.messagingengine.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B1/BB-46544-CD8B5D75 for ; Sun, 11 Sep 2016 16:04:44 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 47721204C2 for ; Sun, 11 Sep 2016 16:04:41 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute3.internal (MEProxy); Sun, 11 Sep 2016 16:04:41 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=ESSDBNse2G8W+TZ UcSC0TvtAsa0=; b=Qea/lBJpOdKhUbwd0ExzV/9LwWs7gslh/xx4VoJgMYB5PVy y29lrzOnXFhYofxEpPE5MhrZO8TUJztPxmisUm/P+gnMzSqtvSi0IvX9gZpd/h/Q 298Mv87uq+mWIOQFHiYJL9GNbuLluOD0tXNnNy1uQnWWDNx7C5hQorXutQnU= X-Sasl-enc: HRSb272w1ii+bgGfK8n1efn0UbXeSt0LTN+6EFEzDAw4 1473624280 Received: from [192.168.42.71] (unknown [172.56.13.147]) by mail.messagingengine.com (Postfix) with ESMTPA id E0A23CCE86 for ; Sun, 11 Sep 2016 16:04:40 -0400 (EDT) To: internals@lists.php.net References: <642a6e78-90ea-cbf0-ec1c-376c24e568c5@fleshgrinder.com> <0800a5ca-3d14-c541-1a1a-2574ec802b8c@fleshgrinder.com> <83fa661e-2d3d-6548-a506-fb969be31c0e@garfieldtech.com> <56acc1d9-f424-a460-59be-3a9a1a74b198@fleshgrinder.com> <95832b08-ee80-18c1-a3da-202eed51903e@fleshgrinder.com> Message-ID: <2c115733-8fe4-5230-a9ec-9d5f2cc2b810@garfieldtech.com> Date: Sun, 11 Sep 2016 15:04:38 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <95832b08-ee80-18c1-a3da-202eed51903e@fleshgrinder.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] RFC - Immutable classes From: larry@garfieldtech.com (Larry Garfield) On 09/10/2016 05:55 AM, Fleshgrinder wrote: > So? Where are we now? CoW is definitely doable and I personally think > that it's the best approach because the engine has full control that > nothing goes south. I also do not think that it's magic in any way since > developers have to add the _immutable_ keyword explicitly to the class. > That this modifier modifies the behavior should be obvious, _abstract_ > and _interface_ also do that. > > Since I mention _interface_. I've been thinking about it and I would > prefer it if the _immutable_ modifier also works for interfaces. > Interfaces are pure abstract classes after all and they are meant to > define a contract for implementors. I cannot see any good reason why it > should not be allowed to force implementors of an interface to be > immutable; same as with abstract classes. > > Another aspect that we should discuss is how immutable properties should > behave in case we decide for CoW. > > @Larry what do you think about the CoW proposal? I'm afraid I got lost in the thread somewhere with the back and forth about implementation details. Can you repost the current proposal, or has the RFC page been updated with the latest CoW-based recommendation? --Larry Garfield