PHP MVC 在同一页面中加载多个控制器模型和视图



我目前正在用PHP设计自己的MVC框架。我已经阅读了很多关于MVC框架的信息,并制作了一个控制器处理模型和渲染视图的框架,尽管不建议这样做。

结构的工作原理如下:引导类根据 URL 加载正确的控制器、方法和变量。它还启动了一个主控制器,主模型和主视图,它们具有一些通用功能。控制器启动其模型并最终呈现其模板。

问题是我有 3 个 MVC 对象。顶部菜单、搜索栏和表格。我希望这些呈现在同一页面上。但是由于我让控制器进行渲染,因此无法在同一网页中渲染三个不同的部分。我是否需要某种帮助程序类,如果需要,如何以正确的方式实现它?

网址将是:localhost/MyApp/grid。

每个控制器都包含以下代码:

$this->view->render(filepath/file.php)

每个模板都包含以下代码:

echo $this->data

我目前正在用PHP设计自己的MVC框架。

那里大错特错,相信我 - 我试过了。结局并不好。

我已经读了很多关于MVC框架的信息(..(

更大的错误。框架不实现 MVC。因此,无论你读到什么,都只是有人试图将他们抛光的狗屎作为黄金出售。

(..( 并制作了一个控制器处理模型并渲染视图的位置 (..(

控制器不负责渲染模板(因为我不相信你真的有视图(,也没有复数的"模型"。

</rant>

你需要的是一个合适的模板引擎。试试树枝。让模板引擎处理共享部分。

有一些不同的概念来处理这个问题。

在我的一个项目中,我将html拆分为模板,视图根据需要加载每个区域。

例如:

$this->renderTemplate('page.header', $pageHeaderModel);
$this->renderTemplate('page.content.'.$viewKey, $pageContentModel);
$this->renderTemplate('page.footer', $pageFooterModel);

在每个页面上,内容模型都会更改,而其他页面保持不变。

最新更新