espacio de nombres php y carga automática
-
12-10-2019 - |
Pregunta
Tengo cierta clase
/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';
Versión carga de clases, pero var_dump muestran lo que es clase vacía sin función getVersion ();
startobject(QPF\Version)#2 (0) { } ss
Solución
métodos no aparece en var_dump
o print_r
de salida, ya que no son parte del estado del objeto. Trate de llamar al método; que debería funcionar como se esperaba.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow