douxiangshi6568 2018-10-03 08:38
浏览 64
已采纳

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

I am actually learning the MVC pattern but since 2 days i can't resolve the following problem :

I have a Core\Core() class in which i want to instantiate src\Controller\Controller() classes depending on route.

I created an autoloader that seems to work:

<?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');
}
});

I have the autoloader required on index.php and I am calling my Core\Core() in index.php but it doesn't load my Controller clesses.

I have this message :

Uncaught Error: Class 'AppController' not found in C:\xampp\htdocs\PiePHP\Core\Core.php:22

Thanks for your help!

  • 写回答

1条回答 默认 最新

  • douju2012 2018-10-03 13:22
    关注

    Problem resolved : I needed to set namespace like this :

    $class = 'src\\Controller\\' . self::$currentController;
       $controller = new $class();
       $method = self::$currentMethod;
       $controller->$method();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    悬赏问题

    • ¥15 Pycharm无法自动补全,识别第三方库函数接收的参数!
    • ¥15 STM32U575 pwm和DMA输出的波形少一段
    • ¥30 android百度地图SDK海量点显示标题
    • ¥15 windows导入environment.yml运行conda env create -f environment_win.yml命令报错
    • ¥15 这段代码可以正常运行,打包后无法执行,在执行for内容之前一直不断弹窗,请修改调整
    • ¥15 C语言判断有向图是否存在环路
    • ¥15 请问4.11到4.18以及4.27和4.29公式的具体推导过程是怎样的呢
    • ¥20 将resnet50中的卷积替换微ODConv动态卷积
    • ¥15 通过文本框输入商品信息点击按钮将商品信息列举出来点击加入购物车商品信息添加到表单中
    • ¥100 这是什么压缩算法?如何解压?