J'ai ce morceau de code ici pour charger automatiquement des classes:Erreur fatale avec spl_autoload
<?php
$test = [
'includeDirs' => [
'interfacesDir' => __DIR__ . DIRECTORY_SEPARATOR . 'interfaces'. DIRECTORY_SEPARATOR,
'abstractsDir' => __DIR__ . DIRECTORY_SEPARATOR . 'abstracts'. DIRECTORY_SEPARATOR,
'classesDir' => __DIR__ . DIRECTORY_SEPARATOR . 'classes'. DIRECTORY_SEPARATOR
],
'includeExtensions' => [
'classExtension' => '.class.php',
'abstractExtension' => '.abstract.php',
'interfaceExtension' => '.interface.php'
]
];
set_include_path('.');
set_include_path(get_include_path() . PATH_SEPARATOR . implode(PATH_SEPARATOR, $test['includeDirs']));
spl_autoload_extensions(implode(',', $test['includeExtensions']));
spl_autoload_register();
$streamFactory = new StreamFactory();
Mais je Allways obtenir l'erreur suivante:
Erreur fatale: spl_autoload(): ne peut pas être chargé de classe StreamFactory dans C: \ Utilisateurs \ Test \ PhpstormProjects \ Test \ test.php sur la ligne 24
Lorsque je vérifie les chemins qui sont définis dans le chemin d'inclusion, ils sont corrects.
Quelqu'un peut-il me donner un indice, pourquoi cette erreur est-elle lancée?
Où se trouve l'emplacement de la classe StreamFactory? c'est «classes»? –
Oui c'est ici: C: \ Utilisateurs \ Test \ PhpstormProjects \ Test \ classes \ stream_factory.class.php –
Encore une question, quel est l'espace de noms utilisé par StreamFactory? –