我有一个简单的控制器文件StudentController.php
<?php
$data = array();
$data["firstName"] = $_GET["firstName"];
loadView("StudentView.php", $data);
?>
我有一个更简单的视图文件,叫做学生视图.php
<?php
echo $firstName;
?>
我完全不知道如何实现loadView($view, $data)
功能。我希望控制器中$data
的变量在视图中可用(控制器中的$data["foo"]
在视图中变得$foo
)
我想实现在 CodeIgniter 中很容易做到的事情,但我不知道它是如何实现的。我试图在源文件中查看控制器.php和加载器.php但它太混乱了,我无法理解。
我不想使用CodeIgniter或任何其他框架,我想在PHP中原生使用。
如果您要构建一个供公众使用的大型网站,出于多种原因,框架通常是一个好主意:
- 适当的单元测试 - 一般来说,您可以确信您网站的核心正在按预期运行
- 社区支持 - 有问题,你可以很容易地得到答案;通常这些框架是开源的,通常由PHP社区积极开发
- 安全 - 框架开发人员是框架开发人员;他们接受过培训,可以编写将安全性作为重中之重的代码。
非框架无关,所以我将用一个非常简单的函数回答你提出的问题:
function loadView($view, $data) {
extract($data);
ob_start();
require_once $view;
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
您可以选择返回内容或直接打印它们,但该功能应该满足您的需求。我不保证这段代码的安全性,而且我显然没有做任何错误检查。但它应该作为您入门的良好基础。