找不到命名空间的类


Namespaced class not found

我有以下工作正常:

use frontend'models'modules'shipping'Usps;
$shipping = new Usps;

但是,如果我使用以下方法,则会抛出错误:找不到类"Usps"

use frontend'models'modules'shippingl'Usps;

我正在动态加载类,因此在调用新$class时无法使用命名空间,例如。我可能还有:

use frontend'models'modules'payment'Usps;
$class = 'Usps';    
$shipping = new $class; 

如何使用变量完成这项工作? 如果我不使用命名空间/自动加载,而只包含类文件,它就可以正常工作。

此问题不是重复的,引用的问题/答案不声明"使用"。

这是我

看到它工作的唯一方法,没有安全问题和大量错误,特别是如果$class来自用户输入。

我添加了一个"Ups"类,所以它更有意义。

 use frontend'models'modules'payment'Usps;
 use frontend'models'modules'payment'Ups;
 if($class == 'Usps') {    
      $shipping = new Usps;
 } else if($class == 'Ups') {
      $shipping = new Ups;
 } else {
      // No valid class found - handle accordingly
 }