Tôi đang đối mặt với một vấn đề mà tôi không may không thể giải quyết cho đến nay. Tôi tạo ra một database class
vào app/db/mysql/database.php
với nội dung sau:Không gian tên PHP PDO không tìm thấy
<?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']);
}
}
Sử dụng nhà soạn nhạc, tôi tự động load lớp này:
{
"autoload" : {
"classmap" : [
"app/libraries",
"app/db"
]
}
}
nào tạo ra một autoload_classmap.php
như:
return array(
'App\\Database\\Database' => $baseDir . '/app/db/mysql/database.php',
'App\\Libraries\\Parser' => $baseDir . '/app/libraries/Parser.php',
);
Bây giờ , khi mọi thứ hoạt động tốt, tôi luôn gặp lỗi liên quan đến PDO:
Fatal error: Class 'App\Database\PDO' not found in /var/www/my_application/app/db/mysql/database.php on line 24
Tôi nghĩ rằng vấn đề xuất phát từ namespace
vì khi tôi đưa lớp học vào trang chỉ mục, tôi không có bất kỳ lỗi nào. PDO được cài đặt và hoạt động.
Ồ, tôi thấy bạn đã tự giải quyết. Xóa câu trả lời của tôi –
@DamienPirsy sẽ khôi phục lại nó tốt hơn. Cả câu hỏi phải được xóa hoặc có câu trả lời, để giảm danh sách câu hỏi chưa được trả lời. –
Xóa câu hỏi có vẻ tốt hơn với tôi (vì nó có thể tránh được ngay từ đầu), hoặc OP có thể tự cung cấp câu trả lời và tự động trả lời số –