在PHP中扩展带有命名空间的类

时间:2017-04-01 10:44:52

标签: php namespaces autoload extends

我试图用命名空间编写我的第一个框架。 我在扩展类控制器方面遇到了问题。 我得到了

  

致命错误:Class' Controller'在第3行的xxx / src / controllers / index.php中找不到

控制器看起来:

Job succeeded

这是namespace src\libs; class Controller {}

中的索引类
src/controllers/

我的自动加载:

namespace src\controllers;
use src\libs as libs;
class Index extends libs\Controller
{}
  

LIBS = ./src/libs /

AutLoader有效,因为它包含带类控制器的文件,我不会收到错误。我不明白为什么它不起作用。

1 个答案:

答案 0 :(得分:0)

它对我来说很好

文件: <?php namespace src\libs; class Controller { }

/var/www/html/PHP/Randoms/src/controllers/Index.php

文件: namespace src\controllers; use src\libs as libs; spl_autoload_register(function($classname){ $classPath=str_replace("\\", "/", $classname); $filePath= dirname(__FILE__)."/../../".$classPath.".php"; if(file_exists($filePath)) { require_once $filePath; } }); class Index extends libs\Controller {}

{{1}}