휠을 다시 차고 점점 커지는 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
시작 위치 (추천 링크 등)에 대한 설명은 "처음부터 다시 시작"하는 것보다 유용합니다. –
[Google은 시작하기 좋은 곳입니다.] (http://www.google.com/search?q=php + templating + engines) 이러한 템플릿 시스템을 찾아서 어떻게 사용하는지 확인하십시오. 당신이 좋아하는 것을 결정하고 몇 가지를하지 마십시오. 그런 다음 다시 시작하십시오. 위에서 제시 한 코드에는 코드에 문제가있을 수있는 거의 모든 것이 있습니다. 열악한 설명부터 깨진 getter/setter 개념의 재 구현, 실제로 템플릿에 유용하지 않은 것까지. – DampeS8N