Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:113271 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 50165 invoked from network); 25 Feb 2021 20:52:54 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 25 Feb 2021 20:52:54 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id CFD991804E4 for ; Thu, 25 Feb 2021 12:41:58 -0800 (PST) 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-Virus: No X-Envelope-From: Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) (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, 25 Feb 2021 12:41:58 -0800 (PST) Received: by mail-lj1-f182.google.com with SMTP id 2so3508673ljr.5 for ; Thu, 25 Feb 2021 12:41:58 -0800 (PST) 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 :cc; bh=T/+3bMH8orX/OPbCvcS6KyBYUttNqCDisuz03SIdcgk=; b=Dc/Yrp3B0Uhr1A1kgYuMIvVD80LKOsXcJE0XdxqM2T+amQVbSgIXcnQ/IO4+cc7/E8 wrCOaJPfP4CtZ4tHVmtFY9XF4GDgoCaVDiqB1v28EAw7lYGMW/XxRkBl4cjmUjSta3aK uAXlnHq9/F/1X8ool5pEEJpL8zHjkv1j/iF3pJ1L6ejU5DsCp2LPBFo/CAg+36TNBJ2I ghtylf7XS36UXQogqv3i4qEMbt3OMULglXcoHc38PYrcQeYq6FRl4yd7Qy9RDEOHUvEK RCWvN2Sr4CYs+UjYFArQwi9765ogDDPQ237yW9C61elyW4xCCOn6o/btlii1pn7vhnCN jGTw== 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:cc; bh=T/+3bMH8orX/OPbCvcS6KyBYUttNqCDisuz03SIdcgk=; b=ER8/5FNeSeiXy8ZkKm3BqENcyRBZhqV+Fa4qVlDUxWLD5/hfYdHkOtwwf37ADEVtpC UdwJnq16I5CnVNjhLGmcf7vRsV+eQgkBK40F8wvIJYS+qM1DxC4in39jfHxytBSotRbJ GZ4HCyeCVObkXTILMbmwCZZKGFsSjmikDQQ3EMOqDRwhb47jfkXCH7gOiXehg/PRCGzz Jc/W1nxwAYegzLWg2mqaR+Jr4F+Gh/wEaFc85U8mD+GaxtzJdL3VENRgSJSa1XRj2s2K KEpU0n79ARxbXSY8TBw3fwrnJMUrkbz7t0kjICwbMA2bTzjWTVG8ihEh/+FofEYCq5q+ RSOA== X-Gm-Message-State: AOAM531eUdC5TSGVNqNXe5lHg0Vfb0OJK+I8AF9fyUOpNncffPXhXUcG TiA6EZk9+E77aN/D3KaqI+Yykj61dUxjb4sOQUg= X-Google-Smtp-Source: ABdhPJxDLeany6Ncg1uxRTkwi21gMQ8QFdtqR5H0Fx5hoQ+Av9yNtfJpnuGLWP1yP7YUBAKDgGCnYhqlXO4g1h6Z1uk= X-Received: by 2002:a2e:99ce:: with SMTP id l14mr1531375ljj.93.1614285716721; Thu, 25 Feb 2021 12:41:56 -0800 (PST) MIME-Version: 1.0 References: <177da98a052.c500761c696204.3345368100437568281@manuelcanga.dev> In-Reply-To: <177da98a052.c500761c696204.3345368100437568281@manuelcanga.dev> Date: Thu, 25 Feb 2021 21:41:40 +0100 Message-ID: To: Manuel Canga Cc: Internals Content-Type: multipart/alternative; boundary="000000000000b6135905bc2f2ec6" Subject: Re: [PHP-DEV] [RFC] class_name:namespace From: nikita.ppv@gmail.com (Nikita Popov) --000000000000b6135905bc2f2ec6 Content-Type: text/plain; charset="UTF-8" On Thu, Feb 25, 2021 at 8:11 PM Manuel Canga wrote: > Hi internals, > > I would like to present a possible new RFC( "class_name:namespace" ) for > your consideration. > > As you know, namespaces are very important nowdays. They are used in > autoloaders, Frameworks, CMS, ... > > Maybe, you are used to code something similar to this: > > ``` > use MyProject\MyHelpers\MyClass; > > echo substr( MyClass::class, 0, strrpos( MyClass::class, '\\')); > ``` > > or perhaps: > > ``` > use MyProject\MyHelpers\MyClass; > > $splited_class_name = explode( '\\', MyClass::class ); > array_pop($splited_class_name); > echo $namespace = implode('\\', $splited_class_name ); > ``` > > Other option is: > > ``` > namespace MyProject\MyHelpers; > > class MyClass { > public const NAMESPACE = __NAMESPACE__; > } > ``` > > However... :( > > ``` > namespace MyProject\MyServices; > > class MyNewClass extends MyClass{ > } > > echo MyNewClass::NAMESPACE; //MyProject\MyHelpers > ``` > > All of these examples are ways for getting a thing which PHP compiler > would resolver fast. > > It would be fantastic can code: > > MyClass::namespace or static::namespace( for example, in abstract classes ) > > Don't you think the same ? Could you please share the use case(s) you have in mind for this? Regards, Nikita --000000000000b6135905bc2f2ec6--