0

我是新来的。抱歉,如果我没有正确解释这一点,我这样做并不容易。

我正在尝试将一个类动态关联到一个命名空间,这意味着:

假设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(因此变得更加复杂)。

谢谢!

4

0 回答 0