PHP-MVC:在Core中实例化控制器

时间:2018-10-03 08:38:07

标签: php autoloader

我实际上正在学习MVC模式,但是自2天以来,我无法解决以下问题:

我有一个Core \ Core()类,我想根据路由实例化src \ Controller \ Controller()类。

我创建了一个似乎可以工作的自动加载器:

<?php
spl_autoload_register(function($class){

$base_dir = dirname(__DIR__);
$file = $base_dir . '/' . str_replace('\\', DIRECTORY_SEPARATOR, $class). '.php';

if(is_readable($file)){
    require_once $base_dir . '/' . str_replace('\\', DIRECTORY_SEPARATOR, $class . '.php');
}
});

我在index.php上具有自动加载器,并且正在index.php中调用我的Core \ Core(),但是它不会加载我的Controller clesses。

我收到此消息:

未捕获的错误:在C:\ xampp \ htdocs \ PiePHP \ Core \ Core.php:22中找不到类'AppController'

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题已解决:我需要这样设置命名空间:

$class = 'src\\Controller\\' . self::$currentController;
   $controller = new $class();
   $method = self::$currentMethod;
   $controller->$method();