>  기사  >  백엔드 개발  >  PHP-스마트-캐시1(25)

PHP-스마트-캐시1(25)

WBOY
WBOY원래의
2016-08-08 09:24:38976검색

1. 캐싱 원리:

IE: 리소스 파일을 로컬에 저장

똑똑함: 캐시를 서버에 저장

컴파일 < 캐시 < 정적

2. 캐싱 기술을 사용하는 이유

1. 웹사이트 접속 속도 향상

2. 웹 서버에 대한 부담을 줄입니다

3. 데이터베이스 서버에 대한 부담을 줄입니다

3. 캐시 설정

1. smarty에서는 주로 다음 코드 라인을 통해 캐시를 설정합니다.

l $smarty->setCacheDir($cache_dir)

캐시 디렉토리 설정

향후 생성되는 캐시 파일은 이 디렉토리에 자동으로 배치됩니다

l $smarty->caching=true

캐싱 메커니즘 활성화

캐싱 기술을 사용하는 한 표시 방법이 호출되기 전에 캐싱 메커니즘을 활성화해야 합니다(캐시를 지우려면 활성화하지 마세요).

l $smarty->cach_lifetime=3600

캐시 유효 기간(라이프 사이클) 설정,

기본값은 3600초(1시간)이며 적절하게 조정할 수 있습니다

2. 코드 부분:

프로그램 코드:

템플릿 코드:

위 프로그램을 실행한 후 현재 디렉터리에 두 개의 폴더가 자동으로 생성된 것을 확인했습니다.

여기서 template_c와 캐시는 각각 컴파일 및 캐시 디렉토리를 나타내며 자동으로 생성됩니다.

단, 자동 생성 기능에 너무 의존하지 않는 것이 좋습니다. 일부 운영체제에서는 기본적으로 생성 권한이 없기 때문에 실행하기 전에 이 두 디렉터리를 수동으로 생성하는 것이 좋습니다.

3. 두 파일의 차이점을 살펴보세요.

컴파일된 파일:

캐시 파일:

관찰 결과, 컴파일된 파일에서 매번 PHP 프로그램을 통해 템플릿 변수의 값을 동적으로 읽어오는 것을 발견했습니다

캐시 파일에는 이 두 변수의 값이 파일에 직접 기록됩니다

4. 캐싱은 템플릿을 캐싱하는 것을 말합니다

다른 PHP 프로그램을 만들고 이러한 프로그램이 위 템플릿을 다시 표시하도록 시도할 수 있으며 이러한 프로그램은 위 프로그램에서 생성된 캐시 파일만 직접 실행한다는 것을 알 수 있습니다

5. Smarty 캐시의 작동 원리:

6. 두 가지 관련 속성

$smarty->compile_check

기본값은 true입니다. 즉, 실행될 때마다 템플릿이 변경되었는지 확인하고 변경되면 다시 읽어서 컴파일된 파일과 캐시 파일을 생성합니다. 하지만 프로젝트가 온라인 상태가 된 후에는 기본적으로 템플릿이 자주 변경되거나 이동되지 않습니다. 매번 시스템 성능에 영향을 미칠 것으로 판단되므로 프로젝트가 온라인 상태가 된 후에는 이 옵션을 꺼두는 것이 좋습니다. 거짓으로).

$smarty->force_compile

기본값은 false입니다. 즉, 실행될 때마다 캐시가 만료되었는지 확인합니다. 만료되지 않은 경우 캐시 파일의 내용을 직접 사용합니다. 그러나 프로젝트가 개발될 때 캐싱은 프로그래머의 프로그램에 대한 가장 직접적인 판단과 최신 데이터 관찰에 영향을 미칩니다. 이 옵션을 true로 설정하는 것이 좋습니다. 즉, 실행될 때마다 컴파일된 파일과 캐시 파일이 다시 생성됩니다.

4. 캐시 확인

$smarty->isCached(“tpl.tpl”)

템플릿에 캐시된 파일이 있는지 확인

실용적 적용:

5. 캐시 지우기

예를 들어, 쇼핑몰 시스템에서 이 제품의 가격은 1000.00이고 현재 쇼핑몰에서는 30% 할인이 적용됩니다. 캐싱을 사용하는 경우 제품 가격은 여전히 ​​원래 가격으로 유지됩니다. 이때 이전 캐시 파일을 삭제해야 합니다.

l $smarty->clearCache(“tpl.tpl”)

템플릿의 캐시 파일 지우기

l $smarty->clearAllCache()

모든 템플릿의 캐시 파일 지우기

상품정보가 변경될 경우 해당 상품의 캐시파일을 다시 생성해야 합니다

일반적으로 데이터를 수정하려면 캐시 파일을 재생성해야 합니다(원래 캐시 파일을 삭제해야 합니다).

이상으로 php-Smarty-caching 1(25) 관련 내용을 소개하였습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.