【发布时间】:2013-08-26 16:45:06
【问题描述】:
我已经构建了一个基本的 MVC 字体控制器应用程序。它建立的目的是为了方便网站编辑、索引。 php是每个js和css文档加载的唯一页面,然后前端控制器将相应的内容文件向前带入指定的div中,通过在末尾添加?pagename即可调用正确的文档网址(例如:site.com/index.php?about-us)。它运行良好,没有 PHP 错误,但是我现在正在尝试在站点中构建一个音频播放器,并希望它在页面之间保持不变,所以我试图编辑这个 mvc 代码以使用 ajax,这样页面就不会重新加载改变内容。下面是我的页面代码。
index.php code snippet
<div id="mpane-in">
<?php
/** Display errors in production mode Only DO NOT un-comment unless testing **/
//ini_set('display_errors', 1);
// Load the routing controller
require 'application/router.php';
?>
</div>
/application/router.php
require 'load.php';
require 'model.php';
require 'controller.php';
new Controller();
load.php
class Load {
function view( $file_name, $data = null )
{
if( is_array($data) ) {
extract($data);
}
include 'pages/' . $file_name;
}
}
model.php
class Model {
public function user_info()
{
// simulates real data
return array(
'first' => 'Target',
'last' => 'Not_Loaded'
);
}
}
controller.php
class Controller {
public $load;
public $model;
function __construct()
{
$this->load = new Load();
$this->model = new Model();
// determine what page you're on
$this->home();
}
function home()
{
if ($_SERVER['QUERY_STRING'] === ""){
$data = $this->model->user_info();
$this->load->view('main.php' , $data);
}
else {
$data = $this->model->user_info();
$this->load->view($_SERVER['QUERY_STRING'] . '.php' , $data);
}
}
}
任何建议都会很棒!谢谢!
【问题讨论】:
-
这不是 MVC,index.php 应该是应用程序的引导程序,在决定路由、加载控制器和模型然后从模型接收数据传递给视图之后,视图是链中的最后一个,还您对目录遍历攻击持开放态度
-
老实说,我并不完全确定它是如何工作的 100%,我遵循了一个在线教程,简要解释了它,但它相当不清楚。有没有更好的方法来完成我正在寻找的任务?我不想要一个完整的 mvc,他们做的比我正在寻找的更多,这就是为什么这是一个如此完美的解决方案。
-
AJAX 是一种传输方式,您放在这里的任何内容都不会阻止您已经拥有 AJAX。
-
欧文我想的差不多,但我不知道如何实现它