由于我决定重新转动轮子并编写一个正在发展的MVC,我虽然有一个模板类会很酷。现在我从来没有做过任何复杂的模板,除了简单的包含模板之外。现在我写了这个基类,下面是我的概念。这是正确的方式/编写网页模板的概念吗?PHP自定义模板类
概念 “的任何模板类将扩展这个类。控制器将修改单个部分或全部,如果控制器将只使用一组动作修改的内容,则该网页将只改变一个部件和其它部件将保持就像包括页眉/页脚一样,“
另一个问题是,我如何传递相同的页面对象,以便在对象中缓存未更改的部分(因为http是无状态协议)?我应该开始会话并将其存储在会话中吗?父母应该是单身? 谢谢!
<?php
class TemplateBase{
//variables corresponding to part of web page
private $header;
private $footer;
private $body;
private $menu;
private $left_side;
private $right_side;
private $menu_header;//between menu and header
private $menu_content;//between menu and content
public function __construct(){
//no inits for now
}
//header
public function header_func($action, $value=null){
if($action=="get"){
return $this->header;
}
if($action=="set"){
$this->header = $value;
}
}
//footer
public function footer_func($action, $value=null){
if($action=="get"){
return $this->footer;
}
if($action=="set"){
$this->footer = $value;
}
}
//body
public function contents_func($action, $value=null){
if($action=="get"){
return $this->body;
}
if($action=="set"){
$this->body = $value;
}
}
//left side
public function left_bar_func($action, $value=null){
if($action=="get"){
return $this->left_side;
}
if($action=="set"){
$this->left_side = $value;
}
}
//right side
public function right_bar_func($action, $value=null){
if($action=="get"){
return $this->right_side;
}
if($action=="set"){
$this->right_side = $value;
}
}
//menu
public function menu_func($action, $value=null){
if($action=="get"){
return $this->menu;
}
if($action=="set"){
$this->menu = $value;
}
}
//between menu and content
public function menu_content_func($action, $value=null){
if($action=="get"){
return $this->menu_content;
}
if($action=="set"){
$this->menu_content = $value;
}
}
//between menu and header
public function menu_header_func($action, $value=null){
if($action=="get"){
return $this->menu_header;
}
if($action=="set"){
$this->menu_header = $value;
}
}
}
/*End of file*/
重新开始。检查现有的模板系统,然后重新开始。 – DampeS8N
评论从哪里开始(推荐链接或其他内容)比仅仅说“重新开始”更有用 –
[谷歌是一个很好的开始。](http://www.google.com/search?q=php +模板+引擎)找到这些模板系统中的任何一个,看看它们是如何实现的。决定你喜欢什么,而不是几个。然后重新开始。上面介绍的代码几乎包含了代码可能出错的所有内容。从糟糕的评论,到重新实现破碎的getter/setter概念,实际上并没有对模板有用。 – DampeS8N