PSR Autoloader功能失败

时间:2013-04-09 21:26:30

标签: php oop psr-0

我想我可能会遗漏一些简单的东西,需要第二双眼睛。这失败,找不到致命的错误类。自动加载功能取自PSR-0 github页面。

<?php

function my_autoload($className)
{
    $className = ltrim($className, '\\');
    $fileName  = '';
    $namespace = '';
    if ($lastNsPos = strrpos($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';

    return $fileName;
}

spl_autoload_register('my_autoload');

new Vendor\Package\Example();

这是我的index.php,Class位于Vendor / Package / Example.php,这里是内容。

<?php

namespace Vendor\Package;

class Example {

    public function __construct() {
        echo __CLASS__ . ' Created with Namespace ' . __NAMESPACE__;
    }

}

当我执行此操作时require_once my_autoload('Vendor\Package\Example');

1 个答案:

答案 0 :(得分:4)

  

自动加载功能取自PSR-0 github页面。

不,on the page没有return $fileName;require $fileName;