php espace de noms et autoload
-
12-10-2019 - |
Question
J'ai une certaine classe
/library/QPF/Loader.php
namespace QPF;
class Loader
{
protected static $loader = null;
public function __construct()
{
spl_autoload_register('QPF\Loader::_autoload');
}
public static function init()
{
if (null === self::$loader) {
self::$loader = new Loader();
}
return self::$loader;
}
public function _autoload($class)
{
//if (class_exists($class)) return true;
$classFile = str_replace('\\', '/', $class) . '.php';
require_once $classFile;
if (!class_exists($class)) throw new Extension('Not found class');
}
}
/library/Version.php
namespace QPF;
class Version
{
public function getVersion()
{
return '0.1';
}
}
/public/index.php
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../library');
define('APPLICATION_PATH', dirname(__FILE__) . '/../application');
require_once 'QPF/Loader.php';
QPF\Loader::init();
echo 'start';
use QPF;
$v = new QPF\Version();
var_dump($v);
echo 'ss';
Version chargement des classes, mais var_dump montrer ce qu'il est classe vide sans getVersion () fonction;
startobject(QPF\Version)#2 (0) { } ss
La solution
Méthodes ne montrent pas la production de var_dump
ou print_r
, car ils ne font pas partie de l'état de l'objet. Essayez d'appeler la méthode; il devrait fonctionner comme prévu.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow