我正在尝试将面向对象的方法应用于我的网站。
我有以下对象:
- 错误:处理所有错误,杀死致命错误的应用程序
- 数据库:处理数据库连接、查询等
- cookie:创建和读取cookies
- session:设置和获取会话变量,几乎处理会话
- 用户:处理我所有的用户信息(他连接了吗?他的 ip 已知吗?他的 id 是什么?等等)
- page:知道上面的所有对象,并根据 get 变量决定必须向用户显示的内容
通常,每个对象都传递它上面的对象。
我想要做的是有一个 page->render() 函数来渲染整个页面。
我有一个标题数组、一个页脚数组、一个元标记数组和一个脚本数组,渲染函数依次包含这些数组。该函数看起来像这样:
public function render(){
// to simplify im excluding meta tag and script arrays
foreach($this->headers as $header){
include $header;
}
//page sontents here
foreach($this->footers as $footer){
include $footer;
}
我的问题是我应该如何渲染数据库数据,以便在调用渲染函数时而不是在包含视图时渲染它们?
例如,假设我有以下代码:
$result = mysql_query("SELECT SOME ENTRIES FROM DB");
while($row = mysql_fetch_assoc){
include "views/show_the_entry.php";
}
当调用 page->render() 函数时,我能做些什么来渲染它们?
我是不是把整个事情都想错了?如果是这样,有人可以提供有关此类 OO 实现理念的链接或一些信息吗?