Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:115870 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 58644 invoked from network); 26 Aug 2021 21:18:57 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 26 Aug 2021 21:18:57 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 267471804AD for ; Thu, 26 Aug 2021 14:53:31 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_20,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,MISSING_HEADERS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 26 Aug 2021 14:53:31 -0700 (PDT) Received: by mail-wr1-f42.google.com with SMTP id f5so7191699wrm.13 for ; Thu, 26 Aug 2021 14:53:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:cc:subject:user-agent:in-reply-to:references:message-id :mime-version:content-transfer-encoding; bh=EY62v1k1hRskf6Q8wl4/U5FO/e9Nl8Q+LPxJmogtjCc=; b=SnTsGo6yPwRWf8/Crx6GVwRTPseLt1AOxo7GAhHDgei0Gc6bLsMjxP7jKpOwQAwLN2 gyG3IXGQwieiq668Q7/O18W0ULV/sHZr4eK6BJ5anw/mi7AHJ/r4mwxoRnlutQcpDdZg F+6NC2cWw/3fN6VxPV3sa0UhFLBt5T3T40kB7eFTUqXxiW5WWlT65lZVG29xMBhhEasg 79KTCrUWu7XWwfhN/cScpS9aXZfQCqDSQSKM0WQyYJPY35cHwSS5MB9a4pFQJ6Wbnf1V hJNY1w0GsiWsFF8AMZL3d1Nq0Ou8+LGCxKgTR+/SNNWSH8SOjc5WBv/CgGjyimVSQpXj 4CeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:cc:subject:user-agent:in-reply-to :references:message-id:mime-version:content-transfer-encoding; bh=EY62v1k1hRskf6Q8wl4/U5FO/e9Nl8Q+LPxJmogtjCc=; b=HyCn3sVbvlsskQ8WZxbMYQk3TK1fYxf5bAxm4iF3X0x5nudMo7NuLa3XfmM7ew8Poj nTbOIPFtbCl3QPOlD0caZM8cgfPXZ4eszCex6rmXbELFigFdZYcgcBZA9sYqtY/n3OMf NqsA5By3Rz8oel9Lj1erssXkdncadHtU3fggSD5hk82JyCWiBbUtHs0QttNDKEIENkmj jQBVkL9FwMAb7ktav9kHFYRDD7smy4+CYxyXdd4zwzQMSPyAYqbiMyieXfWOKUmpB1EU SQiVqw5QlHO0YV6FrXTFw2FrJcy5r/RxzLkGvOBBDhNGZAfTAuA3U+t17BxFAMqp/yht q/6Q== X-Gm-Message-State: AOAM531KfQM3nN5MHiwHEOiO449HXqBYB4Ma1F9clZQdrTXPMmdzrJat mFSl7iX2NpPg6MxLLaz4Xym+UsTVDsI= X-Google-Smtp-Source: ABdhPJx/9CvHBm6tlifcKFzo24uyhdi6HPmRn/LE91/HMIrtuW38qOj5vERyFB2oXooIucSNj8OEAg== X-Received: by 2002:a5d:470b:: with SMTP id y11mr6426559wrq.213.1630014809830; Thu, 26 Aug 2021 14:53:29 -0700 (PDT) Received: from [127.0.0.1] (cpc104104-brig22-2-0-cust548.3-3.cable.virginm.net. [82.10.58.37]) by smtp.gmail.com with ESMTPSA id n8sm4423662wra.24.2021.08.26.14.53.29 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Aug 2021 14:53:29 -0700 (PDT) Date: Thu, 26 Aug 2021 22:53:30 +0100 CC: internals@lists.php.net User-Agent: K-9 Mail for Android In-Reply-To: References: Message-ID: <6ABFB65D-6F8E-4591-B36A-EA4B4CEC96A5@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: =?US-ASCII?Q?Re=3A_=5BPHP-DEV=5D_Alternatives_for_encapsulation_?= =?US-ASCII?Q?when_using_composition_instead_of_inheritance?= From: rowan.collins@gmail.com (Rowan Tommins) On 26 August 2021 21:20:35 BST, "Olle H=C3=A4rstedt" wrote: >The Foo class has to decide who to give access to, otherwise it's the >same as public access=2E It does decide who has access: any class that declares it as "delegated"= =2E In exactly the same way, "protected" gives access to any class that dec= lares it as a "parent", and namespace visibility would give access to any c= lass that declares itself in the same namespace=2E None of those actually limit access to a named list of classes, but all of= them document an intended use, and catch mistakes where that intent isn't = followed=2E Regards, --=20 Rowan Tommins [IMSoP]