Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Bonsoir, j'ai créer l'autoloader de la formation POO, le problème est qu'il me charge pas les bons fichiers.

Voici mon architecture:

|_ Lib
|_MonProjet
|_vendor
|_src
|_Autoloader
|_autoloader.php
|_Model
|_database.php
|_ect
|_src
|_ect

Voici le code de mon autoloader:

<?php
namespace Lib\Vendor\Src;

class Autoloader{
    static function register(){
        spl_autoload_register(array(__CLASS__, 'autoload'));
    }

    static function autoload($class){
        if (strpos($class, __NAMESPACE__ . '\\') === 0){
            $class = str_replace(__NAMESPACE__ . '\\', '', $class);
            $class = str_replace('\\', '/', $class);

            require($_SERVER['DOCUMENT_ROOT'] . '/' . $class . '.php');
        }
    }
}

En cas d'erreur sur mon database.php, voici mon code:


<?php
namespace Lib\DigitalCubics\Vendor\Src\Model;

use \PDO;

class Database{

    private $db_name;
    private $db_user;
    private $db_pass;
    private $db_host;
    private $pdo;

    public function __construct( $db_name, $db_user = 'root', $db_pass = 'root', $db_host = 'localhost')
    {
        $this->db_name = $db_name;
        $this->$db_user = $db_user;
        $this->$db_pass = $db_pass;
        $this->$db_host = $db_host;
    }

    private function getPDO(){
        $pdo = new PDO('mysql:dbname=general__news;host=localhost', 'root', 'root');
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $this-$pdo = $pdo;

        return $pdo;
    }

    public function query($statement){
        $req = $this->getPDO()->query($statement);
        $datas = $req->fetchAll(PDO::FETCH_OBJ);

        return $datas;
    }

}```

### Ce que je veux

Je voudrais que mon autoloader charge les fichiers de mon site

### Ce que j'obtiens

Ce que j'obtient, c'est une simple page blanche.

PS: c'est mon premier message sur le forum, désoler si il y a des problèmes au niveau du code.

Cordialement

1 réponse


Salut tu dois juste l'inclure dans ton projet
define('ROOT', dirname(DIR));
require ROOT . '/app/App.php';
App::load();