我在一个spl_autoload_register()
注册的函数里面。在这里我可以得到类名,但是如何确定它是哪个命名空间呢?
问问题
68 次
2 回答
2
试试这个例子。您可以定义一个处理您的呼叫的类
<?php
namespace Example;
#Define a classLoader object
class Loader{
/**
* Construct and set the autoloader class handler
*/
public function __construct() {
spl_autoload_register(array($this, 'loadClass'));
}
/**
* This method is called when an object is loaded
*
* @param string $args
*/
public function loadClass($args){
var_dump($args);
//REMOVE: this is only for killing the process
die;
}
}
//Create your autoloader object
new Loader();
//Calling some class
new \Some\Name\Space\Example();
你应该得到一些这样的回应。
string(23) "Some\Name\Space\Example"
于 2012-11-01T15:42:49.300 回答
1
如果你想要当前的命名空间:
namespace MyProject;
echo '"', __NAMESPACE__, '"'; // outputs "MyProject"
否则你存储在配置文件中或(在应用程序结构的评论中说明)我想......
于 2012-11-01T14:36:53.520 回答