我是新来的。抱歉,如果我没有正确解释这一点,我这样做并不容易。
我正在尝试将一个类动态关联到一个命名空间,这意味着:
假设file1.php:
// file1.php
namespace myNamespace;
require_once("./file2.php");
// I want to the following dynamically:
use \myClass as myClass;
// So I can be able to do so:
\myNamespace\myClass::myMethod();
...以及包含该类的文件:
// myClass.php
class myClass {
public function myMethod() {
return "Hello world!";
}
}
我想要做的是如下加载:
\myNamespace\myClass::myMethod();
但是,目的是动态地做到这一点。我的意思是能够创建一个执行此操作的函数,而不是使用 require_once (然后是使用函数)函数,因此 file1.php 变成:
// file1.php
namespace myNamespace;
load_comp("myClass");
// And then be able to do:
\myNamespace\myClass::myMethod();
有什么模式可以做到吗?我想这样做,这样定义命名空间的文件就不会变得太大(因为我想用更多的类来做到这一点),并使可访问性更容易。
我知道如何使用 myClass.php 拥有自己的命名空间来做到这一点,但它变得更加混乱,因为它会变成这样:
\myNamespace\myClassNamespace\myClass::myMethod();
然后,您将拥有仅由 myClass 使用的命名空间 \myNamespace\myClassNamespace(因此变得更加复杂)。
谢谢!