현재 프로덕션 사이트에 Smarty 템플릿 시스템을 사용하고 있지만이 템플릿 엔진을 사용하여 얼마나 많은 성능 저하가 발생했는지 궁금합니다. 빠른 대안이 있습니까? 그런 템플릿 시스템을 사용할 필요가 없도록 코딩하는 방법이 있습니까? 고맙습니다!PHP에서 코드에서 프리젠 테이션을 분리하기위한 Smarty 대안?
답변
프리젠 테이션과 코드를 분리하는 데 외부 템플릿 엔진이 필요하지 않습니다. 단지 로직 만 있으면됩니다. PHP 자체는 템플릿 엔진으로서 완벽하게 훌륭합니다. PHP 코드와 HTML을 섞어서는 안됩니다. 템플릿 엔진은 프로그래머가 아닌 웹 디자이너를 위해 더 쉽게 배울 수 있습니다.
명백한 대답은 - PHP 만 사용하십시오. 많은 사람들이 템플릿 언어라고 주장하지만, Smarty를 사용하는 것을 선호합니다.
Smarty는 PHP 개발자가 비즈니스 로직, 데이터베이스 호출 등을 프리젠 테이션에서 분리하도록합니다. 그러나 훈련 된 PHP 개발자는 PHP를 템플릿 언어로 사용하여 프리젠 테이션을 별도로 유지할 수 있습니다.
또한 XSL 변환을 사용하여 논리와 표현을 구분할 수 있습니다. XSLT 변환기는 XML 트리를 받고 XSLT 변환을 사용하여 프레젠테이션을 생성하여 HTML 출력을 생성합니다.
그러나 XSLT는 공부하기가 어렵고 XML 및 XPath에 대한 지식이 필요합니다. 최근 프로젝트에서 Smarty를 사용하고 있지만 현재 프로젝트는 XSLT 템플릿을 기반으로하므로 XSLT를 배워야했습니다. Smarty와 그 조상 인 FastTemplate이 저에게 더 복잡해 보입니다. 그러나 XSLT는 논리를 presenatation과 분리하는 또 다른 방법입니다.
XML의 장점 & XSLT는 이러한 기술이 PHP뿐만 아니라 다른 언어에서도 사용된다는 것입니다.
게다가 하나 이상의 템플릿 엔진 - PHP template engine이 있습니다. Drupal CMS의 기본 템플릿 엔진입니다. 나는 Drupal 전문가가 아니므로 그것에 대해 아무 말도 할 수 없습니다. 그러나 PHP 구문을 사용하므로 배우기가 쉽습니다.
XSLT here에 대해 읽을 수 있습니다.
나는 나의 대답이 당신을 위해 유용 할 것이라는 점을 희망한다.
Psttt를 사용해 볼 수도 있습니다. PHP 용 템플릿 엔진
전체 소스 코드는 여기 http://github.com/givanz/psttt
- 1. PPTX 프리젠 테이션을 HTML로 변환하기위한 라이브러리
- 2. 단계별 유형 프리젠 테이션을 만들기위한 jQuery 플러그인이 있습니까?
- 3. iPad 앱에 Keynote 프리젠 테이션을 내장 할 수 있습니까?
- 4. 다국어 프리젠 테이션을 가장 잘 관리하는 방법은 무엇입니까?
- 5. 클릭 할 때 deck.js 프리젠 테이션을 만드는 방법
- 6. html5 datetime 입력 - 값 프리젠 테이션을 스타일화할 수 있습니까?
- 7. Smarty PHP에서 큰 따옴표 제거하기
- 8. PHP에서 프리젠 테이션과 비즈니스 로직 분리하기
- 9. 정규식 PHP에서 HTML 코드에서
- 10. Lync SDK에서 어떻게 파워 포인트 프리젠 테이션을 공유 할 수 있습니까? (WPF 응용 프로그램)
- 11. Venn Diagram 프리젠 테이션을 허용하는 jQuery 플러그인 또는 JavaScript 라이브러리가 있습니까?
- 12. 데이터 액세스, 비즈니스 로직 및 프리젠 테이션을 구분하는 단순한 우아한 패턴
- 13. YQL에 대한 대안
- 14. Smarty 템플릿 내의 Eval Smarty 코드
- 15. Smarty-PHP에서 등록/가입 웹 양식을 캐시 할 수 있습니까?
- 16. PHP에서 퓨전 차트 사용 및 Smarty 템플릿 엔진에서 렌더링
- 17. Smarty html_options
- 18. 스핑크스를 사용하여 S5 프리젠 테이션 생성
- 19. 문자열을 구분 기호로 분리하기위한 저장 프로 시저
- 20. 작업 준비를 실행과 분리하기위한 디자인 패턴이 있습니까?
- 21. CakePHP 테마 지원 Smarty View (즉, Themed Smarty View)
- 22. {발급되지 않은 경우} Smarty
- 23. CakePHP 및 Smarty 문제
- 24. smarty 디버깅 콘솔
- 25. smarty autoindent html
- 26. Smarty 캐싱 구성 요소
- 27. JQuery with SMARTY ph
- 28. Smarty PHP 조건부 도움말
- 29. Smarty 캐시가 작동하지 않습니까?
- 30. smarty 템플릿으로 다국어 지원