Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:113280 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 11011 invoked from network); 26 Feb 2021 10:19:34 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 26 Feb 2021 10:19:34 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 055781804E2 for ; Fri, 26 Feb 2021 02:08:46 -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-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (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 ; Fri, 26 Feb 2021 02:08:45 -0800 (PST) Received: by mail-wr1-f50.google.com with SMTP id n4so8021400wrx.1 for ; Fri, 26 Feb 2021 02:08:45 -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=WUy8tD6lF7seGiYauFjPnU1T70F+Ts6tB2jiDdPeCI8=; b=Yef0PzkXrJEspd5Qbj2xaAJkBvLcZwBcXHwcE99aPf6KMBmNUQ7Gwb8euAjMDkRZKn 2lSBjTdOmz2RrEM5/Zi6QZgQrLE7TDFP31flvD9wtu+5tdqtmkUKPV/2/O0AVzHi8MV4 vH3077Vi/t2M2JXv+A0dltiMmS9x09MltW2NJWjuo64hCq43c6Sjr0gFACYe3Z0N3JCJ K2CDAnecDyOQolOBvUcN/jSXxzQGbRzSM2DQTzDLHzuQTuYcvAqwOVYMl3X4JrPo8pDG 4c1ks4uMHDePmFYIWmAaO64wtY75F+kYLTR5Bou7nTioZEzLfdT1cP39T5tPBnhO34k7 GTqg== 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=WUy8tD6lF7seGiYauFjPnU1T70F+Ts6tB2jiDdPeCI8=; b=Zf0LCDaPcT4bsYfhHRe0Wxkdt2eHIABsSwrZLE4KXTrJlMsQ4AwvGLDv+sMNCh81/3 piU+Bn09QVL8EJC18dCCbhzjOFXZl5XOlNRXFlftv8oqeSF6IJa2urW37VRCQK2w13Vu ExzkDkkuQGYg55RTcuzkPJJ05FzeSaDoMHCeAqyJx+q8I5mwQe5XdHiFtx61y2Zs+A/w 0xZYAzbwTm5eMV3g5XRSwEZzgwCu+Q4FhhqvDCjKrppMKWqxhPGVXY8iTa8iyxYt18Yg g52e9f1Lr5Qqx076lrjkPSyKjH31IHymHMtszJfRjmly8aPmTraLzNU/4Wm6p9xTX+BY jXlg== X-Gm-Message-State: AOAM532AlhUcYk0zv88EAXCR8/lqPeqxCUHUTP+kIISLnkWd9XbaYswV wjJolNuaNgLxdOB832JInGVyVEjpGm8AoK5wf2aJZbYLS5w2jQ== X-Google-Smtp-Source: ABdhPJxD44ONkGNwKqGZFReF6CQQp6phXTUBDhSCshUmfcpFe7cDfmUw50gePfIEWMqvI0AOflp27wJiwi6UZBu60DM= X-Received: by 2002:adf:9b82:: with SMTP id d2mr2367772wrc.193.1614334124350; Fri, 26 Feb 2021 02:08:44 -0800 (PST) MIME-Version: 1.0 References: <177db7bbf72.ecf4615f732310.8822018854991483226@manuelcanga.dev> <177dd68f109.c748581d17565.7200783349436492456@manuelcanga.dev> <177dd714e27.eee40e6c18676.6075409053032215672@manuelcanga.dev> In-Reply-To: <177dd714e27.eee40e6c18676.6075409053032215672@manuelcanga.dev> Date: Fri, 26 Feb 2021 11:08:33 +0100 Message-ID: To: Manuel Canga Cc: PHP internals Content-Type: multipart/alternative; boundary="00000000000007de0205bc3a7460" Subject: Re: [PHP-DEV] [RFC] class_name:namespace From: glash.gnome@gmail.com (Glash Gnome) --00000000000007de0205bc3a7460 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hola Manuel, "Don't you think the same ?" I was thinking of something more generi, maybe : ``` namespace Foo\Bar; class A { static function getNamespace() { static $ns =3D __NAMESPACE__;// https://wiki.php.net/rfc/static_variable_inheritance return $ns; } } namespace My\Baz; class B extends \Foo\Bar\A { } echo \Foo\Bar\A::getNamespace(), PHP_EOL;// Foo\Bar echo \My\Baz\B::getNamespace(), PHP_EOL;// Foo\Bar Ho no ! ``` Unfortunately it doesn't work ... Best regards, Serge Le ven. 26 f=C3=A9vr. 2021 =C3=A0 09:26, Manuel Canga = a =C3=A9crit : > I'm Sorry, I feel a little nervous by writing here again after long time. > > Replace '/' by '\' and PATH( HELPER_PATH | SERVICE_PATH ) by NAMESPACE( > HELPER_NAMESPACE | SERVICE_NAMESPACE ). > > > Sorry > > > > > > > ---- En vie, 26 feb 2021 09:16:18 +0100 Manuel Canga > escribi=C3=B3 ---- > > Hello, another example with "factories method"[1]: > > > > ```php > > use MyProject\Framework; > > > > abstract class AbstractController { > > private const HELPER_PATH =3D static::namespace.'/Helpers'; > > private const SERVICE_PATH =3D static::namespace.'/Services'; > > > > public function instanceHelper( string $helperClass ) { > > $helperClassName =3D self::HELPER_PATH."/{$helperClass}"; > > > > return new $helperClassName(); > > } > > > > public function instanceService( string $serviceClass ) { > > $serviceClassName =3D self::SERVICE_PATH."/{$serviceClass}= "; > > > > return new $serviceClassName(); > > } > > } > > > > use MyProject\MyModule; > > > > class Controller { > > public function __invoke() { > > //...... > > $date =3D $this->instanceHelper('Date'); > > //... > > } > > > > } > > ``` > > > > [1]: https://en.wikipedia.org/wiki/Factory_method_pattern > > > > Regards > > -- > > Manuel Canga > > > > Zend Certified PHP Engineer > > Websites: https://manuelcanga.dev | https://trasweb.net > > Linkedin: https://es.linkedin.com/in/manuelcanga > > > > -- > > PHP Internals - PHP Runtime Development Mailing List > > To unsubscribe, visit: https://www.php.net/unsub.php > > > > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: https://www.php.net/unsub.php > > --00000000000007de0205bc3a7460--