2012-11-17 55 views
1

我刚开始使用作曲家和它的自动加载器的PHP。然后我使用psr-0将自己的代码添加到自动装载器。除了当我想访问PDO(新的PDO(...))时,一切都很好。它看起来超出了范围,因为Autoloader在我的包中称它为MyAPP。我得到的错误是:PDO超出范围(PHP作曲家)

PHP Fatal error: Class 'MyApp\PDO' not found in /var/www/ws/src/MyApp/WsDatenbank.php on line 15

我对谷歌的尝试最终失败
请帮助 - 由于提前

回答

2

发布我的意见作为答案

你要做的:。new \PDO()(注意斜线)做这件事时您正在加载全局名称空间的类,否则它将从当前名称空间加载(在你的情况下MyApp)。

+0

谢谢,在PSR-4中是这样的:在类中,'use \ PDO;'实际上这是一个名为'\ PDO'的命名空间。 – vlad

+0

我不明白这是如何与PSR4相关的? :P – PeeHaa

+0

因为我们使用composer作为autoloading classmap,所以我使用root命名空间作为PDO。现在工作良好。与OOP一起工作时。更多[为什么使用作曲家PSR](http://stackoverflow.com/questions/22803419/why-use-a-psr-0-or-psr-4-autoload-in-composer-if-classmap-is-actually-更快) – vlad