Smarty 템플릿 엔진이 캐시하는 방법에 대한 자세한 설명
이 글에서는 주로 Smarty 템플릿 엔진 캐싱 메커니즘을 소개하고, Smarty 템플릿 엔진 캐싱 메커니즘의 원리를 예제 형식으로 분석하고, 활성화 및 사용 방법과 관련 주의 사항을 참고할 수 있습니다. 그것이 모두에게 도움이 되기를 바랍니다.
자세한 내용은 다음과 같습니다.
먼저 스마트 캐싱과 컴파일에 대해 이야기해 보겠습니다. 이 두 가지 개념은 기본적으로 컴파일이 활성화되어 있지만 캐싱 메커니즘은 수동으로 활성화해야 합니다. 아직 php파일이라 실행되는 시점에 아직 컴파일이 되어있는 상태인데, 데이터베이스가 관련되어 있다면 여전히 데이터베이스에 접근해야 하기 때문에 오버헤드가 적지 않으니 이를 해결하기 위해서는 스마트한 캐싱이 필요합니다!
1. 글로벌 캐시를 켜세요
$smarty->cache_dir = "/caches/"; //缓存目录 $smarty->caching = true; //开启缓存,为flase的时侯缓存无效 $smarty->cache_lifetime = 3600; //缓存时间
2. 한 페이지에 여러 캐시를 사용하세요
예를 들어 기사 템플릿 페이지는 여러 페이지에 캐시됩니다. display() 메소드에서 두 번째 매개변수를 설정하고 고유 식별자를 지정하기만 하면 구현이 간단합니다. 다음 PHP 코드:
$smarty->display('index.tpl',$_GET["article_id"]);
위와 같이 기사 ID의 두 번째 매개변수를 통해 기사 페이지를 캐시합니다.
3. 캐싱 비용 절감
즉, 캐시된 페이지는 데이터베이스에서 처리할 필요가 없으며 is_cached() 메서드를 통해 판단할 수 있습니다!
if(!$smarty->is_cached('index.tpl')){ //调用数据库 } $smarty->display('index.tpl');
4. 캐시 지우기
일반적으로 개발 과정에서는 캐시 시간 동안 출력 결과가 변하지 않기 때문에 캐시를 켜지 않지만, 응용 과정 중에 캐시를 켜면 웹 성능이 크게 향상됩니다. .캐시를 지우는 방법은 다음과 같습니다:
clear_all_cache();//清除所有缓存 clear_cache('index.tpl');//清除index.tpl的缓存 clear_cache('index.tpl',cache_id);//清除指定id的缓存
5. 로컬 캐싱 끄기
페이지의 일부가 캐시되고 다른 부분은 캐시할 필요가 없는 경우 다음과 같이 할 수 있습니다. 사용자의 로그인 이름을 표시하려면 캐시를 꺼야 합니다. Smarty는 다음 세 가지 솔루션을 제공합니다. 방법:
(1) 삽입 템플릿의 일부를 캐시되지 않도록 사용
삽입 태그에서 사용할 처리 기능을 정의합니다. 함수 이름 형식은 다음과 같습니다. insert_xx (array $params, object &$smarty) 여기서 xx는 insert의 이름입니다. 즉, 정의한 함수가 insert_abc인 경우 템플릿에서 사용되는 방법은 {insert name입니다. =abc}
매개변수는 $params
를 통해 전달됩니다. 삽입 플러그인으로도 만들 수 있으며 파일 이름은 insert.xx .php, 함수 이름은 smarty_insert_aa($params, & $smarty), xx 정의는 위와 같습니다
(2) $smarty->register_block($params, &$smarty)는 전체 페이지의 특정 블록이 캐시되는 것을 방지합니다
블록 정의:
smarty_block_name($params,$content, &$smarty){return $content;} //name表示区域名
블록 등록:
$smarty->register_block(name, smarty_block_name, false); //第三参数false表示该区域不被缓存
템플릿 작성:
{name}内容 {/name}
블록 플러그인 작성:
1단계: 플러그인 기능 정의: block.cacheless.php 및 스마트에 넣기 플러그인 디렉토리의 내용
block.cacheless.php는 다음과 같습니다.
<?php function smarty_block_cacheless($param, $content, &$smarty) { return $content; } ?>
2단계: 프로그램 및 템플릿 작성
샘플 프로그램: testCacheLess.php
<?php include(Smarty.class.php); $smarty = new Smarty; $smarty->caching=true; $smarty->cache_lifetime = 6; $smarty->display(cache.tpl); ?>
사용된 템플릿: 캐시.tpl
已经缓存的:{$smarty.now}<br> {cacheless} 没有缓存的:{$smarty.now} {/cacheless}
이제 실행 잠시 후, 두 줄의 콘텐츠가 모두 캐시되었습니다
3단계: Smarty_Compiler.class.php 다시 작성(참고: 이 파일은 매우 중요합니다. 필요한 경우 복원하려면 먼저 백업하세요)
찾기:
코드 복사코드는 다음과 같습니다.
$this->_plugins[block][$tag_command] = array($plugin_func, null, null, null, true);
수정 :
if($tag_command == cacheless) $this->_plugins[block][$tag_command] = array($plugin_func, null, null, null, false); else $this->_plugins[block][$tag_command] = array($plugin_func, null, null, null, true);
원문의 마지막 매개변수를 false로 직접 변경할 수도 있습니다. 이는 기본 캐시를 끄는 것을 의미합니다.
(3) 플러그인이 캐시에서 출력되는 것을 방지하려면 Register_function을 사용하세요.
index.tpl:
<p>{current_time}{/p} index.php: function smarty_function_current_time($params, &$smarty){ return date("Y-m-d H:m:s"); } $smarty=new smarty(); $smarty->caching = true; $smarty->register_function('current_time','smarty_function_current_time',false); if(!$smarty->is_cached()){ ....... } $smarty->display('index.tpl');
참고:
함수를 정의합니다. 함수 이름 형식은 다음과 같습니다. smarty_type_name($params, &$smarty )
type은 함수입니다.
name은 사용자 정의 라벨 이름입니다. 여기서는 {current_time}입니다.
두 매개변수는 필수이며 함수에서 사용되지 않더라도 작성해야 합니다. 두 매개변수의 기능은 위와 동일합니다.
관련 권장 사항:
PHP의 똑똑한 템플릿 연산자는 무엇인가요? 연산자를 어떻게 사용하나요?
위 내용은 Smarty 템플릿 엔진이 캐시하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Python은 데이터 분석 및 기계 학습 분야에서 널리 사용되는 다목적 프로그래밍 언어입니다. 단순성, 가독성 및 풍부한 라이브러리 덕분에 복잡한 데이터 작업을 처리하는 데 이상적입니다. 이러한 강력한 응용 프로그램 중 하나는 구매 행동을 기반으로 고객을 분류하기 위해 마케팅에 사용되는 기술인 RFM 분석입니다. 이 튜토리얼에서는 Python을 사용하여 RFM 분석을 구현하는 과정을 안내합니다. 먼저 RFM 분석의 개념과 마케팅에서의 중요성에 대해 설명하겠습니다. 그런 다음 Python을 사용하여 RFM 분석의 실제적인 측면을 점차적으로 살펴보겠습니다. 기사의 다음 부분에서는 최신성, 빈도 및 값을 고려하여 Python을 사용하여 각 고객의 RFM 점수를 계산하는 방법을 보여줍니다.

최근 'Black Myth: 오공'은 각 플랫폼의 동시 접속자 수가 새로운 최고치를 기록하며 전 세계적으로 큰 주목을 받고 있습니다. 이 게임은 여러 플랫폼에서 큰 상업적 성공을 거두었습니다. 'Black Myth: Wukong'의 Xbox 버전 출시가 연기되었습니다. 'Black Myth: Wukong'은 PC와 PS5 플랫폼으로 출시되었지만 Xbox 버전에 대한 확실한 소식은 없습니다. 관계자는 '검은 신화:오공'이 엑스박스 플랫폼으로 출시될 것임을 확인한 것으로 알려졌다. 하지만 아직 구체적인 출시 날짜는 발표되지 않았습니다. 최근 Xbox 버전의 출시가 기술적인 문제로 인해 지연된 것으로 알려졌습니다. 관련 블로거에 따르면, 그는 Gamescom에서 개발자 및 "Xbox 내부자"와의 커뮤니케이션을 통해 "Black Myth: Wukong"의 Xbox 버전이 존재한다는 사실을 알게 되었습니다.

하얼빈 의과대학 임상약학 취업 전망은 어떻습니까? 전국 취업 상황이 낙관적이지는 않지만 약학 졸업생의 취업 전망은 여전히 좋습니다. 전반적으로 제약산업 졸업생의 공급은 수요보다 적다. 제약회사와 제약공장은 이러한 졸업생을 흡수하는 주요 통로이기도 하다. 보도에 따르면 최근 몇 년간 조제약품, 천연의약화학 등 전공 대학원생의 수급비율은 1:10에 달하기도 했다. 임상약학전공 취업방향: 임상의학을 전공하는 학생은 졸업 후 의료보건학과, 의학연구 및 기타 학과에서 진료, 예방, 의학연구 등에 종사할 수 있습니다. 채용 직위: 의료 담당자, 제약 영업 담당자, 영업 담당자, 영업 관리자, 지역 영업 관리자, 투자 관리자, 제품 관리자, 제품 전문가, 간호사

오늘날 웹사이트 개발은 중요한 구성 요소 템플릿 엔진과 분리될 수 없습니다. 템플릿 엔진은 페이지 템플릿과 데이터를 결합하여 특정 형식의 HTML 코드를 생성하는 도구를 말합니다. 다양한 웹사이트 개발 프레임워크에서 템플릿 엔진은 코드 중복을 크게 줄이고 페이지의 역동성을 향상시킬 수 있기 때문에 필수적인 구성 요소입니다. 가장 일반적이고 널리 사용되는 템플릿 엔진 중 하나는 Smarty입니다. Smarty는 DSL(DomainSpecif

현대 웹 개발에서는 프런트엔드와 백엔드의 분리가 매우 대중적인 추세가 되었으며, 이를 통해 개발자는 프로젝트를 더 잘 구성하고 프로젝트 개발 효율성을 향상시킬 수 있습니다. PHP와 Smarty는 프런트엔드와 백엔드 분리 개발을 달성하는 데 사용할 수 있는 매우 일반적으로 사용되는 두 가지 기술입니다. 이 기사에서는 PHP와 Smarty를 사용하여 프런트엔드와 백엔드 분리 개발을 수행하는 방법을 소개합니다. 프론트엔드와 백엔드 분리 개발이란 무엇입니까? 전통적인 웹 개발에서 프론트엔드는 주로 페이지 표시와 백엔드와의 상호 작용 논리를 담당합니다. 백엔드는 주로 비즈니스를 담당합니다.

PHP 개발자로서 템플릿 엔진을 사용하는 것은 자연스러운 선택입니다. Smarty는 HTML/CSS/JavaScript를 PHP 코드에서 분리하는 방법을 제공하여 개발자가 프로젝트를 더 잘 구성하고 관리할 수 있도록 하는 인기 있는 템플릿 엔진입니다. 이 기사에서는 PHP 개발 중에 Smarty 템플릿 엔진을 사용하는 방법을 알아봅니다. 1. Smarty 설치 먼저 Smarty를 설치해야 합니다. 이 기사에서는 Composer를 사용하여 설치하겠습니다.

최근 몇몇 친구들이 win10 이미지 파일을 다운로드하는 방법을 보고했습니다. 시중에 이미지 파일이 너무 많아서 다운로드할 일반 파일을 찾으려면 어떻게 해야 하나요? 오늘은 편집자가 이미지 다운로드 링크와 자세한 해결 단계를 함께 살펴보겠습니다. win10 이미지 빠른 다운로드 및 설치 튜토리얼 다운로드 링크 >>> 시스템 홈 Ghostwin101909 이미지 64비트 버전 v2019.11<<<>>>Win10 이미지 64비트 v2019.07<<<>>>Win10 이미지 32비트 v2019. 07<< <1. 인터넷으로 검색해 보세요.

PHP는 웹 애플리케이션을 개발하는 데 사용할 수 있는 강력한 서버측 스크립팅 언어입니다. 웹 개발 초기에 프로그래머들은 웹 애플리케이션을 개발하기 위해 HTML과 JavaScript 코드를 많이 사용했습니다. 그러나 이 접근 방식은 HTML 및 JavaScript 코드가 매우 복잡해지기 때문에 유지 관리가 어렵습니다. 이 문제를 해결하기 위해 Smarty 템플릿 엔진이 만들어졌습니다. Smarty는 W를 관리하고 생성하기 위해 PHP를 기반으로 개발된 템플릿 엔진입니다.
