我遇到了命名空间冲突。我的类文件看起来像这样(简而言之)。我写了评论stuck here
我遇到了问题。
<?php
//file location - /core/controller/EH_Loader.php
namespace core\controller;
class EH_Loader {
//some public functions here...
private function _create_instance($type, $class, $params, $method_name, $data) {
//create a reflection class so that we can pass parameters to the constructor
// class_alias('Application\Controller\\'.$class, $class, FALSE);
$ref_class = new \ReflectionClass(new $class()); //stuck here - more explainiantion below
if (is_array($params) && sizeof($params) > 0) {
$instance = $ref_class->newInstanceArgs($params);
} else {
$instance = new $class();
}
$this->logger->info("$type object created for $class class");
//call the method along with parameters, if they exist !
if (method_exists($instance, $method_name)) {
call_user_func_array(array($instance, $method_name), $data);
}
return $instance;
}
}
new $class
位于不同的namcespace中,位于/application/controller/test.php
内。我无法通过psr-4加载该文件。我怎样才能做到这一点。另外,我如何在全局命名空间中创建$class
文件。
new $class
看起来像这样。它扩展了另一个具有相同名称空间namespace core\controller;
的类
//namespace application\controller;
class test extends EH_Base {
function __construct() {
parent::__construct();
}
}