Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Importing variable namespaces

Tags:

namespaces

php

Would it be possible to import namespaces using a variable like this:

$namespace = 'User\Authorization\Certificate';
use $namespace;

Obviously this won't run as use statement expects a constant but is there a workaround?

Edit: Discovered a gem (only in PHP > 5.3): class_alias($namespace, alias); which does pretty much the same thing with use User\Authorization\Certificate as alias; so will be using that.

like image 233
Teoman Soygul Avatar asked Aug 10 '26 13:08

Teoman Soygul


1 Answers

While it isn't possible to pass a namespace in a variable to use, you can place the namespace and the expected "short" class name in a variable and use that in most places where you'd need it, like invoking new.

$namespace = '\foo\bar';
$class = 'baz';
$fully_qualified = $namespace . '\\'. $class; // \foo\bar\baz
$a_foo_bar_baz = new $fully_qualified(...);
var_dump( $a_foo_bar_baz instanceof $fully_qualified ); // true
like image 124
Charles Avatar answered Aug 13 '26 03:08

Charles