0

我有一个简单的控制器文件StudentController.php

<?php

$data = array();
$data["firstName"] = $_GET["firstName"];

loadView("StudentView.php", $data);

?>

我有一个更简单的视图文件StudentView.php

<?php

echo $firstName;

?>

我完全不知道如何实现loadView($view, $data)功能。我希望控制器中的变量$data在视图中可用($data["foo"]从控制器$foo中变为视图)

我想实现在CodeIgniter中很容易做到的事情,但我不知道它是如何实现的。我试图在源文件中查看 Controller.php 和 Loader.php,但它太混乱了,我无法理解。

我不想使用 CodeIgniter 或任何其他框架,我想在 PHP 中本地做。

4

1 回答 1

1

如果您要构建一个供公众使用的大型网站,出于多种原因,框架通常是一个好主意:

  • 适当的单元测试 - 一般来说,您可以确信您的网站的核心正在按预期运行
  • 社区支持 - 有问题,您可以轻松获得答案;通常这些框架是开源的,通常由 PHP 社区积极开发
  • 安全 - 框架开发人员是框架开发人员;他们接受过培训,可以编写以安全为重中之重的代码

但是,这个问题与框架无关,所以我将用一个非常简单的函数回答您提出的问题:

function loadView($view, $data) {
    extract($data);
    ob_start();
    require_once $view;
    $contents = ob_get_contents();
    ob_end_clean();
    return $contents;
}

您可以选择返回内容或直接打印它们,但该功能应该满足您的需求。我不保证这段代码的安全性,而且我显然没有进行错误检查。但它应该作为一个很好的基础让你开始。

于 2013-01-26T20:14:14.393 回答