我有一个使用 PDO 的 DB 包装类,并在构造函数中创建了一个 PDO 对象。包装类在我们的命名空间中,我们正在使用自动加载器。问题是在我们的命名空间中找不到 PDO 类,所以我尝试使用这里描述的全局命名空间。
//Class file
namespace Company\Common;
class DB {
private function __construct(){
$this->Handle=new PDO(...);
}
}
有了这个,我得到了这个(如预期的那样):
Warning: require(...\vendors\Company\Common\PDO.class.php): failed to open stream
如果我这样做:
namespace Company\Common;
use PDO;
我明白了:
Fatal error: Class 'DB' not found in ...\includes\utils.php
并且 utils.php 在错误行中包含了这个,在实现命名空间之前它工作得很好:
DB::getInstance();
或者我试过这个:
namespace Company\Common;
class DB {
private function __construct(){
$this->Handle=new \PDO(...);
}
}
它试图像最初那样在我们的命名空间中加载 PDO 类。
我该如何解决这个问题?我想通过这样做use PDO
或者new \PDO
它会加载全局 PDO 类,但它似乎不起作用?