autoload et fichier pleinement qualifié

Eléphanteau du PHP | 10 Messages

18 févr. 2018, 18:25

Bonsoir,

je souhaite mettre en place un système d'autoload pour ne plus avoir à faire des include. La seule POO dans mon code concerne PDO mais ça serait quand même pratique.

Voici mon code actuel.

Le fichier principal contient au début ces lignes :
<?php
include_once dirname(__DIR__)."/includes/config.php";
require_once dirname(__DIR__).'/includes/connect/testautoloader2.php';
include_once dirname(__DIR__)."/includes/connect/connect_mysql.php";
?>
config.php :
<?php
session_start();

define("ROOT", "html5test");
?>
testautoloader2.php :
<?php
include_once dirname((__DIR__))."\config.php";
$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 :
    // il faut que l'autoloader soit toujours à la racine du site 
    $path = ROOT."\includes\connect\\".$name.'.php';
 
    // on vérfie que le fichier existe et on l'inclut
    // sinon on passe la main à une autre autoloader (return false)
    if (is_file($path)) {
        include $path;
    } else {
        return false;
    }
};
 
spl_autoload_register($autoloader);
?>
connect_mysql.php :
<?php 
include_once dirname((__DIR__))."\config.php";

//// connexion
try{
				$bdd = new MyPdo("calendar");//("calendar");
				echo "bdd(connect_mysql 8)=".$bdd."<br/>";
  }
catch(PDOException $e){
				echo "argggggggggggggg".$e->getMessage();
				return(FALSE);
			}			
?>
et le message d'erreur :
Fatal error: Class 'MyPdo' not found in C:\wamp64\www\vhstest160218\includes\connect\connect_mysql.php on line 7
Donc comment faire marcher ça ?

EDIT : au fait, pourquoi j'ai mis fichier pleinement qualifié dans le titre : avec mes recherches, j'ai vu ça :
Une fois que tu as le nom de fichier pleinement qualifié, tu peux l'inclure automatiquement
Mais je n'ai pas trouvé le sens de fichier pleinement qualifié. Donc peut-on me renseigner ?

Eléphant du PHP | 282 Messages

05 mars 2018, 14:09

Bonjour,

Pourquoi réinventer la roue? composer le fait et respecte la norme psr https://getcomposer.org/doc/01-basic-usage.md

Petit nouveau ! | 2 Messages

20 avr. 2018, 18:05

Toujours bon a savoir comment créer un Autoloader sans utiliser composer voici un tuto => https://www.grafikart.fr/formations/pro ... p/autoload