Я пишу небольшую библиотеку на PHP и у меня возникли некоторые проблемы со встроенными классами, которые не читаются.Например:
namespace Woody; class Test { public function __construct() { $db = new PDO(params); } }
Это дает мне:
Неустранимая ошибка PHP: класс 'Woody \ PDO' не найден в /var/www/test.php
Это:
namespace Woody; use PDO;
Или:
$db = new \PDO(params);
Дело в том, что класс PDO не является полным именем в вашем пространстве имен, поэтому PHP будет искать Woody\PDO, который недоступен.
PDO
Woody\PDO
См. Правила разрешения имен Документы для подробного описания того, как имена классов разрешаются в Полное имя .
Добавьте обратную косую черту перед именем класса, т.е.
Должно работать ниже:
namespace Woody; class Test { public function __construct() { $db = new \PDO(params); } }
Вам необходимо поставить префикс PDO с обратной косой чертой, чтобы PHP знал, что он находится в глобальном пространстве имен.