PHP-MVC : 在核心中实例化控制器
PHP-MVC : instantiate Controllers in Core
我实际上正在学习 MVC 模式,但是自从 2 天以来我无法解决以下问题:
我有一个 Core\Core() class,我想在其中根据路线实例化 src\Controller\Controller() classes。
我创建了一个似乎可以工作的自动加载器:
<?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() 但它没有加载我的控制器课程。
我收到这条消息:
未捕获错误:Class 'AppController' 未在 C:\xampp\htdocs\PiePHP\Core\Core.php:22[=12 中找到=]
感谢您的帮助!
问题已解决:我需要像这样设置命名空间:
$class = 'src\Controller\' . self::$currentController;
$controller = new $class();
$method = self::$currentMethod;
$controller->$method();
我实际上正在学习 MVC 模式,但是自从 2 天以来我无法解决以下问题:
我有一个 Core\Core() class,我想在其中根据路线实例化 src\Controller\Controller() classes。
我创建了一个似乎可以工作的自动加载器:
<?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() 但它没有加载我的控制器课程。
我收到这条消息:
未捕获错误:Class 'AppController' 未在 C:\xampp\htdocs\PiePHP\Core\Core.php:22[=12 中找到=]
感谢您的帮助!
问题已解决:我需要像这样设置命名空间:
$class = 'src\Controller\' . self::$currentController;
$controller = new $class();
$method = self::$currentMethod;
$controller->$method();