【发布时间】:2013-05-06 12:10:28
【问题描述】:
我正在开发一个供个人使用的小型 php 框架。我正在尝试使用 Symfony 中使用的 UniversalClassLoader 自动加载类,但是当我尝试使用这些类时出现错误
致命错误:在第 14 行的 /opt/lampp/htdocs/web/globeapi/Start.php 中找不到类“控制器”
这是Start.php文件代码。
require('../libraries/loader/Loader.php');
use Symfony\Component\ClassLoader\UniversalClassLoader;
$auto = require('../config/Auto.php');
$Loader = new UniversalClassLoader();
$Loader->registerNamespaces($auto);
$Loader->register();
Controller::test();
这是Controller类的代码
namespace Libraries\Controller;
class Controller
{
function Controller()
{
}
public static function test()
{
echo 1;
}
}
这里是 Auto.php 文件的代码,它返回用于自动加载的类数组。
return array(
'Libraries\Controller' => '../libraries/controller/Controller.php',
'Libraries\Module' => '../libraries/module/Module.php',
'Libraries\View' => '../libraries/view/View.php',
'Libraries\Sammy' => '../libraries/sammy/Sammy.php',
'Libraries\Routes' => '../config/Routes.php'
);
【问题讨论】:
-
做 \Libraries\Controller::test();工作吗?
-
提示:使用通用类加载器,不需要包含所有类和文件的数组。看看symfony.com/doc/current/components/class_loader.html
-
也不是 \Libraries\Controller::test();不工作
标签: php symfony psr-0 spl-autoloader