PHP Namespace und Autoload
-
12-10-2019 - |
Frage
Ich habe einige Klasse
/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 Klasse Laden, aber Var_dump zeigen, was es leere Klasse ohne Funktion getVersion ();
startobject(QPF\Version)#2 (0) { } ss
Lösung
Methoden zeigen nicht in var_dump
oder print_r
Ausgang auf, da sie nicht Teil des Zustands des Objekts sind. Versuchen Sie, die Methode aufrufen; es sollte wie erwartet.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow