Bonjour,

j'ai créé une classe bdd qui hérite de PDO pour créer une connection. Mon souci est qu'il dit ne pas trouver la classe et je comprends pas.

index.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?php
//autoloading
include_once 'Autoloader.php';
 
use _classes\Bdd\Bdd;
 
$Bd = new Bdd('localhost','support_eis', 'root', '');
 
var_dump($Bdd);
?>

autoloader.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php 
 
class Autoloader {
static function register() {
    define('DIR_ROOT', __DIR__.DIRECTORY_SEPARATOR);
 
    $autoloader = function($full_class_name) {
        // on prépare le terrain : on remplace le séparteur d'espace de nom par le séparateur de répertoires du système
        $name = str_replace('\\', DIRECTORY_SEPARATOR, $full_class_name);
        // on construit le chemin complet du fichier à inclure :a
        // il faut que l'autoloader soit toujours à la racine du site
        $path = DIR_ROOT.$name.'.php';
 
        // on vérifie que le fichier existe et on l'inclut
        // sinon on passe la main à une autre autoloader (return false)
        if (is_file($path)) {
            include $path;
            return true;
        } else {
            return false;
        }
    };
    spl_autoload_register($autoloader);
    }
}
 
Autoloader::register();

Bdd.php :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
class Bdd extends PDO {
 
    public $Bdd;
 
function __construct($Bddhost, $Bddname, $Bdduser, $Bddpswd) {
 
$this->Bdd = new PDO('mysql:host=' . $this->Bddhost.';
Bddname=' . $this->Bddname ,// virgule ici et pas point-virgule
$this->Bdduser, 
$this->Bddpswd);
    }
}

Message d'erreur :
Fatal error: Uncaught Error: Class '_classes\Bdd\Bdd' not found in C:\wamp64\www\eis_oo2\index.php on line 7
Pourquoi ?