> 
 > Hi,
 > 
 > Note that (typos aside) this example cannot work as-is, because 
 > `static::namespace` (like `static::class`) cannot be resolved at 
 > compile-time, and therefore cannot be assigned to a constant.
 > 
 > More generally, in the various examples you provided, the namespace is not 
 > resolved at compile-time: it is either static::namespace or 
 > $fullClassName::namespace where $fullClassName is provided by the 
 > autoloader. As such, instead of a ::namespace magic class constant, it might 
 > be more appropriate to have a helper function, say `get_namespace()`, which 
 > has the additional benefit to work not only on (fully qualified) class 
 > names, but also on function, constant and namespace names (in the case of 
 > namespace names, it would return the name of the parent namespace).
 > 
 > —Claude
 > 
 >

Hi, Claude,

That's sound great. Something like dirname[1] but with namespaces.

But...in that case, I also add a new function like basename but with 
namespaces. Example autoload for WordPress :

```
function autoload( $ful_class_name ) {

$class_ path = str_replace('\\', '/', get_namespace( $ful_class_name ) );
$class_name = strtolower( get_base_namespace( $ful_class_name ) );

  require "{$class_path}/class-{$class_name}.php";

}```

[1]: https://www.php.net/manual/es/function.dirname.php
[2]: https://www.php.net/manual/es/function.basename.php

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

Reply via email to