2010-07-14 5 views
5

나는 clojure에서 코딩을 시작했고, 나는 정말로 Enlive에 깊은 인상을 받았습니다. 내가 정말 좋아하는 한가지는 Enlive가 html 전용 템플릿을 사용한다는 점입니다. 따라서 템플릿은 html로 된 파일로, .html로 끝나며 간단합니다. 그것은 dom 트리로 파싱되고 그 dom 트리는 clojure/enlive, combine, dynamic 등으로 조작됩니다. html 템플릿 파일에는 구문이 없으며 깨끗하게 분리됩니다.PHP 용 html 전용 템플릿 시스템이 있습니까?

비슷한 시스템의 다른 예로는 javacript를 통해 PURE입니다.

PHP에 그런 것이 있습니까? 또는 일반적으로 html 전용 템플릿 작업을 수행하는 방법은 무엇입니까?

+1

나는 이것에 대해서도 철학을 가졌습니다. 이론적으로 애플리케이션에서 모든 html 출력을 수집하고 phpQuery로 파이프 한 다음 PURE와 같은 실제 내용을 주입 할 수 있습니다. 이론에 의하면. – mario

+0

PURE의 Hello World 예제는 12 개의 라인에서 DOM으로 쉽게 다시 구현 될 수 있습니다. DOM 쿼리에 XPath를 사용합니다. 다른 마크 업 언어를 배우는 것에 신경 쓰지 않는다면 XSLT를 살펴보십시오. – Gordon

+0

Gordon과 동일하다고 생각합니다. PHP에서 PURE와 같은 것을 구현하는 경로 (어렵지 않아야 함)에 가면 DOM 엔진을 사용할 수 없으며 XPATH는 갈 수있는 방법입니다. PURE는 지난 XSLT 지난 JSON 회의에서 왔습니다. 하지만 여기서 나는 Gordon과 동의하지 않는다. 나는 XSLT로 돌아 가지 않을 것이다. – Mic

답변

4

들으러 들떠 매료되었습니다. 몇 년 동안이 개념을 생각해 왔으며 템플릿을 순수 HTML로 사용하고 CSS 또는 XPath를 사용하여 문서의 특정 노드에 콘텐츠를 지정하여 채우는 데 몇 가지 원칙을 공유하는 something in PHP을 해킹했습니다.

$t = new Template('yourfile.html'); 
$t->fill('#nav',$someMarkup); 
$t->fill('#header',$otherMarkup); 

나는 또한 종류의 "스타일"로 컨텐츠를 분리하기 위해 함께 일부 조항을 던지는 실험 ... 음, "스타일 시트는"잘못된 단어입니다. 나는 그것들을 content-addressing sheet라고 부르고있다. (이 프로젝트는 content-addressed-style-templating을 위해 CAST라고 불린다.) CAS는 예상대로 표시됩니다.

.col #foot { 
    content: 'foot'; 
} 

#content { 
    content: file_get_contents('pangolin.txt'); 
} 

콘텐츠 값은 PHP 표현식으로 가정합니다. 셀렉터를 통해 적용되는 PHP 설정에 대한 규정이 있습니다.

, 출력을 살펴 입력과 비교 (제일 호출하면 cssfill.php 안에 당신의 PHP 인터프리터의 경로를 변경해야 할 수도 있습니다, 아마 ./cssfill.php pangolin.cas pangolin.html입니다) 타르에 년대 cssfill.php 스크립트의 실행을 받아 파일.

이 게시물이 귀하의 아이디어에 대한 열정을 발생시키는 경우 언제든지 알려 주시기 바랍니다. 나는 이것이 미친 아이디어인지 또는 그것이 있는지 여부를 궁금해왔다. 만약 그렇다면 인터넷에 던져 넣은 타르볼과는 반대로 사려 깊게 공개 된 오픈 소스 프로젝트로 바꿀 것이다.

+0

그래, 정말 그렇지. 코드 프로젝트를 점검해야 할 것입니다. 왜냐하면 그 시스템은 전통적인 템플릿 시스템 방법을 뛰어 넘는 것입니다. 왜냐하면 html로 시작하는 것은 당신이 얻을 수있는만큼 순수하기 때문에, 그렇게 할 수 없습니다. 그 시점 이상으로 나아가십시오. git/github을 사용하지 않습니까? 오픈 소스로 만들려면 github이 친숙 함이 있다면 github이 좋은 장소가 될 것이라고 분명히 말할 수 있습니다. (나는 하루 종일 보식하고 gitub를 생성합니다). 어쨌든 코드를 확인하고 연락을 취하겠습니다. – Kzqai

+0

Tchalvak - 1 년 후 (그리고 Hacker News에 대한 면담 (http://hackerne.ws/item?id=3339291)) 나는 마침내 [github] (https : // github .com/westonc/CAST) - 기회가 생기면 언제든지 생각을 알려주세요. –

+0

할거야 ......... – Kzqai

1

phptal.org을 확인할 수 있습니다. HTML 태그를 사용하는 PHP 용 템플릿 엔진입니다. 하지만 그렇게 빠르지는 않습니다.

twig-project.org 마녀가 더 빠르다고 다른 프로젝트를 확인할 수도 있습니다.

1

체크 아웃 PHPTAL. PHPTAL은 컴파일 된 템플릿과 세분화 된 캐싱을 제공하는 PHP5 용 XML/XHTML 템플릿 라이브러리입니다. 템플릿은 순수 XML/HTML 마크 업으로 정의됩니다.

<div class="item" tal:repeat="item itemsArray"> 
    <span tal:condition="item/hasDate" tal:replace="item/getDate"/> 
    <a href="${item/getUrl}" tal:content="item/getTitle"/> 
    <p tal:content="value/getContent"/> 
</div> 
0

Psttt! php를위한 템플릿 엔진은 정확히 무엇을 찾고 있으며, html을 더 잘 재사용 할 수 있도록 HTML 템플릿을 그대로 유지합니다.

여기에 전체 소스 코드 http://github.com/givanz/psttt

+0

멋지다, 나는 그것을 조사 할 것이다. – Kzqai

1

재미있는 시작됩니다. 그러나 견해와 다른 요소의 상태를 변경하기 위해 표본 텍스트와 다른 템플릿을 사용할 수없는 이유는 무엇인지, 그리고 기존 템플릿 시스템을 만들거나 콘텐츠로 채우는 코드를 추출하는 것이 인상적이었습니다.워크 플로우가 복잡해 졌다고 느껴집니다. html을 php/js와 혼합하거나 추상 템플릿 시스템을 작성하는 것을 좋아하지 않습니다. 많은 뇌를 필요로합니다 - 쉬운 시각화없이 많은 commication.

관련 문제