Пространство имен php и автозагрузка - PullRequest
0 голосов
/ 18 января 2011

У меня есть класс

/ библиотека / 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');

    }
}

/ библиотека / version.php

namespace QPF;

class Version
{
    public function getVersion()
    {
        return '0.1';
    }
}

/ открытый / 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';

Загрузка класса версии, но var_dump показывает, что это пустой класс без функции getVersion ();

startobject(QPF\Version)#2 (0) { } ss

1 Ответ

1 голос
/ 18 января 2011

Методы не отображаются в var_dump или print_r выходных данных, так как они не являются частью состояния объекта. Попробуйте вызвать метод; должно работать как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...