Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:113269 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 42859 invoked from network); 25 Feb 2021 19:22:04 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 25 Feb 2021 19:22:04 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 886951804DD for ; Thu, 25 Feb 2021 11:11:07 -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,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from sender4-op-o11.zoho.com (sender4-op-o11.zoho.com [136.143.188.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 25 Feb 2021 11:11:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614280263; cv=none; d=zohomail.com; s=zohoarc; b=gOL4gXTQ0Pwh/VhqiCwGDaG9aNIQc4V/QlWIt/nGmmd7VqntYuhY2mzij2yeYHrypUipNcZBLhAJxnCHfrvnoVJn9Nk/GUzw3Ktvgs9KWmgaoV9clczJd6n17NJK6cqZtEzwyxznJYG4sgGa/t5UOFp5110wTj0XQ0jE2DxslXw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614280263; h=Content-Type:Content-Transfer-Encoding:Date:From:MIME-Version:Message-ID:Subject:To; bh=myBeGBf81Qzmul5IEQz70DqMW20W6CrCWCjXU/N/H7s=; b=TaAA9grqZ4DSfNifzNk9fxPlslWJ990XSWSxGMFaMSuKSzKKUGiJXWVfcQ7dqxixlsGDVe8jbBNbAO4HogYbzA9MXoE6Kb5zubTBLSSgBuB6FrSnO/bRMBAxKGn6OeHVhdL6Tg+Hdj/0mbEW79JgPwxgFUKQmxBEe9EdaN5B3Cg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=manuelcanga.dev; spf=pass smtp.mailfrom=php@manuelcanga.dev; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1614280263; s=zoho; d=manuelcanga.dev; i=php@manuelcanga.dev; h=Date:From:To:Message-ID:In-Reply-To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding; bh=myBeGBf81Qzmul5IEQz70DqMW20W6CrCWCjXU/N/H7s=; b=XGWIPx6qMuFH/F2ZIkht/s27yipAycrKN/pmsEZOGOw153gWoABYU3GP/eWrWkcF tIsvxOdd4DShOTYND4ajRdXl/7f7RhAc5pPpApCky/EmIzaqYU+hBo8slaovuNy3GBk oF3mGfmlnZo7H8ZV4eXSSWnVGV2L+ur/xumuhGMo= Received: from mail.zoho.com by mx.zohomail.com with SMTP id 1614280231966714.5880011001799; Thu, 25 Feb 2021 11:10:31 -0800 (PST) Date: Thu, 25 Feb 2021 20:10:31 +0100 To: "Internals" Message-ID: <177da98a052.c500761c696204.3345368100437568281@manuelcanga.dev> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Importance: Medium User-Agent: Zoho Mail X-Mailer: Zoho Mail Subject: [RFC] class_name:namespace From: php@manuelcanga.dev (Manuel Canga) 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 ? Regards -- Manuel Canga Zend Certified PHP Engineer Websites: https://manuelcanga.dev | https://trasweb.net Linkedin: https://es.linkedin.com/in/manuelcanga