PHP 템플릿에 관해서는 실제로 말처럼 쉽지 않습니다. 아마도 무작위로 20개 이상의 선택 사항이 있을 수 있으며, 배에만 5개의 서로 다른 템플릿이 포함되어 있어 정말 골치 아픈 일입니다.
남의 의견만 따라하며 이것이 좋다, 저것이 나쁘다고 하지 말고 템플릿을 선택하기 전에 먼저 템플릿의 진정한 목적이 무엇인지 이해하는 것이 좋습니다. 간단히 말해서 템플릿의 핵심 목적은 팀 작업입니다. 기능에는 두 가지 주요 방법이 있습니다.
1. HTML과 PHP를 분리하면 웹 디자이너와 PHP 프로그래머 간의 협력이 더욱 즐거워집니다.
2. 디스플레이 로직과 트랜잭션 로직을 분리하면 핵심 트랜잭션 로직을 변경하고 애플리케이션을 확장하는 것이 더 쉽고 유연해지며, 이는 프로그래머 간의 협력이 더 즐겁다는 것을 의미합니다.
(이 점은 종종 사람들이 간과하거나 오해합니다. 그들은 항상 HTML에서 PHP를 빼는 것을 디스플레이 로직과 트랜잭션 로직을 분리한다고 생각합니다.그렇다면
애초에 왜 PHP와 HTML을 섞어야 할까요?)
이 템플릿의 실제 목적은 올바른 선택을 하는 것이 더 쉬울 것입니다.
유일한 PHP 프로그래머이지만 다른 웹 디자이너와 함께 작업해야 한다면 HTML과 PHP를 분리할 수 있는 템플릿, phplib(현재 Pear http://pear.php.net /package/HTML_Template_PHPLIB 에 통합된 것 같습니다)을 선택하세요. ) 또는
FastTemplate은 이와 유사하며 매우 간단하고 사용하기 쉽습니다.
웹 사이트 인터페이스가 보기 흉하고 주로 프로그래머가 완성하지만 기능이 더 복잡하고 강력한 확장 기능이 필요하며 디스플레이 로직을 포함한 다양한 레벨을 분리해야 한다면 특별한 것을 사용하지 말고 PHP 자체가 최고의 템플릿입니다. . 이 경우에는 프로그램을 매우 신중하게 설계해야 하며 항상 PHP와 html이 아닌 비즈니스 로직과 프리젠테이션 로직을 분리해야 한다는 점을 기억해야 합니다. 이것이 바로 제가 항상 Smarty와 같은 것에 매우 저항하는 이유입니다. 왜냐하면 Smarty의 구문은 너무 복잡하고 강력하여 거의 스크립팅 언어를 재발명할 정도이기 때문입니다(PHP 프로그래머도 이를 다시 배워야 함). 더욱 당황스러운 점은 이 스크립트가 강력할수록 사람들이 비즈니스 로직과 프리젠테이션 로직을 혼합하여 템플릿의 원래 의도를 파괴하기가 더 쉽다는 것입니다.
HTML과 PHP를 분리하여 더 나은 시각적 디자인을 원하지만 전체 시스템이 복잡한 구문을 배울 필요 없이 html, xml, wml의 다양한 인터페이스에 적응할 수 있는 매우 강력한 확장 기능을 갖기를 원하는 경우 운영 효율성 수준이 그렇다면 이는 매우 어려운 문제입니다. 나쁜 소식은 현재 이러한 요구 사항을 실제로 충족할 수 있는 성숙한 템플릿이 없다는 것입니다. 좋은 소식은 그러한 템플릿을 완성하는 것이 어렵지 않다는 것입니다. Zope나 ColdFusion을 사용해 보면 이 템플릿의 그림자를 찾을 수 있습니다.
(wact http://wact.sourceforge.net/ 및 phptal http://phptal.sourceforge.net/ 은 이 방향으로 발전하고 있으며 매우 유망할 것입니다).
템플릿과 데이터를 결합하는 방법(템플릿 호출)에는 푸시(Push) 방법과 풀(Pull) 방법이라는 두 가지 주요 방법이 있습니다.
푸시 방법은 PHP를 사용하여 데이터를 템플릿에 푸시하는 것입니다. 즉, 프로그래머는 템플릿의 각 변수에 값을 명시적으로 할당하고 묶어야 합니다.
가져오기 방법은 php와 html을 혼합하는 것과 같습니다. 템플릿의 변수가 데이터를 적극적으로 가져옵니다.
템플릿에 관해서는 phphtmllib와 Quickform(http://pear.php.net/package/HTML_QuickForm)이라는 두 가지를 언급해야 합니다
. 이 두 가지는 다양한 페이지 구성 요소를 통해 HTML을 완성하기 위해 전통적인 방법을 사용합니다. 페이지는 전적으로 프로그래머의 손에 달려 있습니다. 아마도 전통적인 GUI 데스크탑 프로그램을 작성한 많은 프로그래머가 이 방법을 선호할 것입니다.
더 아름다운 솔루션
상용 소프트웨어를 만드는 경우 Flash가 더 아름다운 솔루션이어야 합니다. (오해하지 마십시오. 단지 PHP가 ming을 지원하고 swf 라이브러리가 Flash를 동적으로 생성할 수 있다는 것을 알고 있다고 해서 그렇게 생각하지 마십시오. 에 대해 이야기하고 있습니다.) 제가 말씀드리고 싶은 것은 Flash Remoting을 지원하는 솔루션이라는 점입니다. PHP와 플래시의 정말 의미 있는 조합입니다. 비주얼 디자이너가 플래시 부분을 완성하고, PHP 프로그래머가 플래시 리모팅을 통해 플래시로 만들어진 클라이언트에 데이터를 보낸다.
현재 두 가지 솔루션이 있습니다.
AMFPHP
Macromedia Flash Remoting은 데이터를 전송할 때 고유하고 보다 효율적인 데이터 형식을 사용하므로 AMFPHP는 데이터 형식을 분석하여 서버 측에서 해당 데이터 형식을 구성합니다. 정보 교환 기능을 달성하기 위해 이러한 데이터를 수신, 구문 분석 및 인코딩하는 클래스입니다(Samba와 마찬가지로 일종의 해킹이어야 함).
PHPObject
http://ghostwire.com/resources/phpobject/
PHPObject는 플래시에 일부 액션스크립트 구성 요소를 포함시켜 개방형 형식 비누를 통해 데이터를 전송하는 또 다른 방법을 사용합니다.
사실, PHP 템플릿에는 다른 많은 문제가 관련되어 있어 한동안 쓸 수 있는 내용이 너무 많습니다.