所以我正在编写我的MVC,需要显示我的观点。
目前它非常简单,只是包含在我的主控制器内的一个函数中。
ob_start();
require_once('views/' . $fileName . '.php');
$output = ob_get_contents();
ob_end_flush();
return $output;
但是,我不太明白如何在我正在渲染的视图中设置所有变量,这是最重要的部分(没有糟糕)。
关于这样做的任何提示?您想要分享的基本MVC框架的任何代码示例?
我正在编写我能想到的最基本的东西,只需要几个控制器,模型,视图,自动加载器和index.php来路由所有请求。我对使用IIS重写模块进行重写不感兴趣,所以我只是运行_GET来获取查询字符串。
在此先感谢,你们的人们总是很有帮助。
答案 0 :(得分:3)
这是一个粗略的想法(从我自己的一个框架中获取和修改的代码,我很久以前构建的,只是为了澄清我的理解),你可以创建一个View
类并将此函数作为方法,但是这个功能可以用作
$content = render('view_name', array('name' => 'Heera', 'age' => '101'));
功能render
:
function render( $filename, $data = array() )
{
try {
$file = 'views/' . $filename. '.php';
if( !is_readable($file) ){
throw new Exception("View $file not found!", 1);
}
$content = file_get_contents( $file );
ob_start() && extract($data, EXTR_SKIP);
eval('?>'.$content);
$content = ob_get_clean();
ob_flush();
return $content;
} catch (Exception $e) {
return $e->getMessage();
}
}
您可以想到像这样的视图
<div><?php echo $name ?></div>
<div><?php echo $age ?></div>
你可以遵循一些现有的框架(我在开发这个框架时做了很多并帮助了我)并编写了自己的框架。