PHP-пространство имен PDO не найдено

Я столкнулся с проблемой, которую я до сих пор не смог решить. Я создал database class в app/db/mysql/database.php со следующим содержимым:

 <?php namespace App\Database; use Symfony\Component\Yaml\Yaml; class Database{ private static $connection = null; private function __construct( $host, $base, $user, $pass ){ try{ self::$connection = new PDO("mysql:host=$host;dbname=$base", $user, $pass); }catch(PDOException $e){ die($e->getMessage()); } } public static function get(){ if( self::$connection !== null ){ return self::$connection; } $yaml = Yaml::parse(file_get_contents(realpath('./app') . '/database.yml')); self::$connection = new Database( $yaml['host'], $yaml['base'], $yaml['user'], $yaml['pass'] ); } } 

Используя композитор, я автоматически загружаю этот класс:

 { "autoload" : { "classmap" : [ "app/libraries", "app/db" ] } } 

Какие генерируют autoload_classmap.php такие как:

 return array( 'App\\Database\\Database' => $baseDir . '/app/db/mysql/database.php', 'App\\Libraries\\Parser' => $baseDir . '/app/libraries/Parser.php', ); 

Теперь, когда все работает нормально, я всегда получаю ошибку, связанную с PDO:

 Fatal error: Class 'App\Database\PDO' not found in /var/www/my_application/app/db/mysql/database.php on line 24 

Я думаю, проблема возникает из namespace потому что, когда я помещаю класс в индексную страницу, у меня нет никакой ошибки. PDO установлен и работает.

Вопрос уже был отредактирован, но для людей, которые просто идут прямо к ответам, вот оно ..

Вы должны использовать правильные пространства имен для объектов в ваших методах, либо «использовать» их, либо префикс их с корневым пространством имен;

 <?php //... namespace etc... use \PDO; self::$connection = new PDO("mysql:host=$host;dbname=$base", $user, $pass); 

или просто;

 self::$connection = new \PDO("mysql:host=$host;dbname=$base", $user, $pass);