use My\Framework\Test;
spl_autoload_register();
$test = new Test();
echo $test;
namespace My\Framework;
class Test
{
public function __toString()
{
return 'hi';
}
}Mais si je fait un include de My/Framework/Test.php alros cela passeFatal error: spl_autoload() [<a href='function.spl-autoload'>function.spl-autoload</a>]: Class My\Framework\Test could not be loaded in /.../index.php on line 7
use My\Framework\Test;
spl_autoload('My\Framework\Test');
$test = new Test();
echo $test;
ou comme caspl_autoload('My\Framework\Test');
$test = new My\Framework\Test();
echo $test;
Le deuxième :Fatal error: Uncaught exception 'LogicException' with message 'Class My\Framework\Test could not be loaded' in /.../index.php:14 Stack trace: #0 /.../index.php(14): spl_autoload('My\Framework\Te...') #1 {main} thrown in /.../index.php on line 14
Je me demande si ce ne serait pas simplement du au fait que sous windows le directory_separator est "\" et sous unix "/" => de ce fait sous windows cela chargeraitFatal error: Uncaught exception 'LogicException' with message 'Class My\Framework\Test could not be loaded' in /.../index.php:21 Stack trace: #0 /.../index.php(12): spl_autoload('My\Framework\Te...') #1 {main} thrown in /.../index.php on line 21
spé, je testerai ce soir je te redirai (sauf si tu trouves avant)oui (donc 2 fichiers : index.php et My/Framework/Test.php).
Mais je commente à chaque fois -> cela me permet de garder les différents test réalisé sous la main
use My\Framework\Test;
function my_autoload($class)
{
$class = str_replace('\\', DIRECTORY_SEPARATOR, $class);
spl_autoload($class);
}
spl_autoload_register('my_autoload');
$test = new Test();
echo $test;
http://www.php.net/manual/fr/function.s ... .php#92767bon ben je sens que je vais aller faire un rapport de bug ...
Code : Tout sélectionner
//http://groups.google.com/group/php-standards/web/psr-0-final-proposal
function autoload($className)
{
$className = ltrim($className, '\\');
$fileName = '';
$namespace = '';
if ($lastNsPos = strripos($className, '\\'))
{
$namespace = substr($className, 0, $lastNsPos);
$className = substr($className, $lastNsPos + 1);
$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
}
$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
require $fileName;
}
spl_autoload_register('autoload');