2011-05-03 2 views
1

PHP와 같은 동적 HTML 템플릿 시스템을 사용하고 있으며이 문제/솔루션에 이름이 있거나 어딘가에서 이미 완료되었는지 궁금합니다.이 페이지 렌더링 기술에 이름이 있습니까?

이 문제는 콘텐츠를 동적으로 제어하는 ​​것과 관련이 있지만 콘텐츠와 코드가 서로 얽혀있는 경우에 발생합니다. 멋진 스타일과 프레임 워크를 많이 사용하는 두 페이지와 동일한 "외부 래퍼"템플릿을 공유하지 않는 다른 페이지를 생각해보십시오.

<!DOCTYPE html> 
<html> 

<head> 
<title>Both pages share a static title</title> 
<script src="..." type="text/javascript"> 
<script src="..." type="text/javascript"> 
<script src="..." type="text/javascript"> 
</head> 

<body> 
<!-- only this part is dynamic, the top and bottom parts are shared among all pages --> 

... 
</body> 
</html> 

계획은 헤더가 될 것 토큰을두고 본문에 자리 표시 자 객체를 수정 한 다음 페이지를 렌더링 할 (그러나 전송되기 전에 후 토큰이 있던 자리 내용을 대체하는 것이 었습니다 클라이언트).

<!DOCTYPE html> 
<html> 

<head> 
__HEAD__ 
</head> 

<body> 
<? 
    $head->title('my very own title'); 
    $head->script('jquery 1.5.2');  
?> 

... 
</body> 
</html> 

__HEAD__ 토큰은 실제 HTML로 확장한다.

<!DOCTYPE html> 
<html> 

<head> 
<title>my very own title</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"> 
</head> 

<body> 
... 
</body> 
</html> 

이 사람이 본 사람이 있습니까?

편집 : 여기 누군가가 같은 문제에 대해 이야기하지만 약간 다른 해결책이 있습니다.

http://iamcam.wordpress.com/2007/07/15/smarty-assigning-variables-to-the-header-from-the-body/

편집^2 : 아래의 허용 대답이 사실이다, 뭔가템플릿 엔진 않는 것이 었습니다. 이 특정 시나리오의 어려움은 실행 엔진과 템플릿 엔진이 (예전 PHP와 마찬가지로) 서로 얽혀 있었기 때문에 묘사를보기가 어려웠습니다. 적절한 템플릿으로 쉽게 해결할 수 있습니다.

답변

1

template engine이라고합니다. PHP를 템플릿 엔진으로 사용하는 것 외에도 Smarty과 같은 다른 솔루션을 사용할 수 있습니다. 또한 CakePHP 및 심포니와 같은 많은 프레임 워크는 코드를 레이아웃과 뷰로 분리하여 이것을 제공합니다.

+0

롤 진정한 ....... – dynamic

+2

당신이 그렇게하면 그 발견은 흥미 진진하지 않을 것입니다. –

+0

나는 어리 석고/나쁘다고 느낍니다. 내 생각에, 그래,이게 템플릿이하는 일이지만, 나는 그냥 직선적 인 대체/보간보다 약간 더 복잡하다고 생각했다.마찬가지로, 변수는 객체가 될 수 있고 메소드를 가질 수 있으며 궁극적으로 결국 렌더링 됨으로써 메소드에 응답합니다. 나는 이것을 빌더 패턴과 결합하고 있다고 생각합니다 ... –

1

perl의 가장 큰 예는 Template Toolkit입니다. 다른 언어의 경우 ASP, JSP, EJS, 옥, 콧수염 등이 있습니다.

1

의존성 주입

영업 원래 문제에 명확하지 않았다 : 보세요. 렌더링 할 페이지 본문은 별도의 파일로 격리되어야합니다. 그리고 다른 파일에 의해 제어되는 HTML 헤더에 무엇이 들어 있는지에 대해 최종적인 언급을하는 것은이 본문 파일입니다.

그래서 그래, 특정 스크립트를 출력의 실제 기능이 멋진 템플릿 엔진에 의해 제공 될 수

하지만 헤더 파일 종속성에 대해 알 필요가없는 것을 특징으로 여기에 표현되는 중요한 아이디어는 의존성 주입입니다 어떤 먼 곳과 시간에 결정되어야한다.

관련 문제