Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:109680 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 98349 invoked from network); 16 Apr 2020 12:24:38 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 16 Apr 2020 12:24:38 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 2B3C51804C4 for ; Thu, 16 Apr 2020 03:54:46 -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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, 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-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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, 16 Apr 2020 03:54:45 -0700 (PDT) Received: by mail-il1-f172.google.com with SMTP id i2so6412029ils.12 for ; Thu, 16 Apr 2020 03:54:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=lTZBPsmMpiC1g4691i6r01SsUoWHBnxTqgCR0hQAS4Q=; b=mKwTqYKWH6ww7f3U8FWztfwLPYVRbSLvO7bxjCGkARqxfb5JK6CH4Gnj8Xs795B56a eg5ecM1GdFkz7k1BlaLCHFZiV5Y3LwsjkwyHmV21nLGNFZGpsHgu1qB74Unml7UrsDph A02+ghYuBz9yHEkrYjCL0BWZ1rKRllt2DKThaihF3dqLJvxcsfkM8Dof/oU6sKAqOy5V EvTfknFY4I1GN4rUwJBR5JHQGn0klVVM11y/49PpAmx9EhlQ/vv81S9TEIB+eEquSQ8Y JJrM+HWLg2rhowj1FIF+OSqBWLbCuKnvVOWxEx8xmI7Pvb1jBOFiBFTqPU/DGnR6frEC jXGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=lTZBPsmMpiC1g4691i6r01SsUoWHBnxTqgCR0hQAS4Q=; b=nIWvxDYJG1fFD/tHjoWZx+h6ZwJIgp90KCng+4BHCHjtpD5qNj+0oDjNdpMWHogltr bEzsZBLCyZEMQ3N73EbzXWNARQV2vOPYcmN5ZuRvx80j4WRZCO2b2s2LIUbdwDdV40xo yWYdZBd4Siyodi7wa1O140DT70h4lm6PVshsgblU464sO3eN3g2O/zHXU7YBnS/0RwSO b+Ts52BSMeCDEZ35lSxsHJEzu2vkHLFpTJ0KC7gpIgGX04VJhDVRG00NgrUNnhZd2HGA tnkEiSI8WEtujsT4HOG4PiYG+X1Uoym1bKwwKYNWfkGYF6A1hLIbjWQqXfa8pL0LYj0F 88OA== X-Gm-Message-State: AGi0Pua5ql7HPvAd+UL+nXEARmaJxLYPzfifoRqTy9hevOloMv2x7KkY yodfJHw5OPOHkwRL8Ha8WOg3N7fB9nYDGorvNw1udnCn X-Google-Smtp-Source: APiQypJo65WhseTQCbtvUGll6/huYrjV80h+ulrEg1RdRMHjcePRPg+84wPsvWyGt7MXlM59rDy5TuG/zb0DyT4oO6c= X-Received: by 2002:a05:6e02:5cb:: with SMTP id l11mr10225085ils.236.1587034484995; Thu, 16 Apr 2020 03:54:44 -0700 (PDT) MIME-Version: 1.0 References: <5e974337.1c69fb81.62230.5d05SMTPIN_ADDED_MISSING@mx.google.com> In-Reply-To: Date: Thu, 16 Apr 2020 11:54:31 +0100 Message-ID: To: PHP internals Content-Type: multipart/alternative; boundary="000000000000b97bb605a366426a" Subject: Re: [PHP-DEV] [RFC][DISCUSSION] PHP Namespace in core From: rowan.collins@gmail.com (Rowan Tommins) --000000000000b97bb605a366426a Content-Type: text/plain; charset="UTF-8" On Wed, 15 Apr 2020 at 20:54, G. P. B. wrote: > On Wed, 15 Apr 2020 at 19:24, Andrea Faulds wrote: > > We already have PHP language features relying on classes in the root > > namespace (Closure, Throwable, ArrayAccess, etc) so the point Marcio > > makes about inconsistency is nonetheless valid I think. > > > The proposal is not to move everything into the PHP namespace. > I would even argue that these interface make more sense in the global > namespace as they are meant to be available to all users to implement > and extend. > > [...] > > A more relevant example, in my eyes, is the current proposal of attributes. > Engine attributes like JIT, NoJIT, and possibly in the future Deprecated > and/or Final are features provided by the engine which should not have the > possibility to be extended by end users, only consumed. > I don't really understand the distinction here. We currently have many interfaces which exist to trigger "magic" in the Engine, some of which even have special restrictions on how they can be used (e.g. you can't actually implement Throwable or Traversable). If we want to prevent users extending an attribute like JIT or NoJIT, we can just mark the relevant class "final", and while extending ArrayAccess or Countable is possible it isn't a particularly common use case, so that doesn't seem like a meaningful difference. If ArrayAccess didn't exist yet, and was proposed after this RFC was accepted, my interpretation of the text would be that it must be placed in the \PHP namespace, because it is "tightly coupled to the internals/engine of the PHP interpreter". Regards, -- Rowan Tommins [IMSoP] --000000000000b97bb605a366426a--