2009-11-16 3 views
8

내 Google-fu에서 내가 뭘 찾고 있는지 밝히지 않았으므로이 내용을 군중에게 알리고 있습니다.PHP와 ASP.NET 응용 프로그램/캐시 객체가 같습니다.

ASP.NET 개발 배경에서 볼 수 있듯이 거의 수정되지는 않았지만 자주 사용되는 리소스 (예 : 데이터베이스의 조회 행 또는 정적 콘텐츠)를 숨길 수있는 ApplicationCache 컬렉션을 사용하는 데 익숙합니다. XML 문서)을 웹 서버의 메모리에 저장하므로 모든 요청 중에 이러한 자주 사용되는 항목을 다시로드 할 필요가 없습니다.

PHP에 상응하는 항목이 있습니까? memcache 확장을 간단히 읽었지만 서버 구성을 제어 할 수 없기 때문에이 기능이 작동하지 않습니다. 미리 구문 분석하거나 미리 설정할 수 있도록 구현하려는 유혹을받습니다. - 리소스를 선택하고 파일에 저장된 리터럴에서 캐싱 된 객체를 구성하는 일종의 PHP 캐시 "파일"을 생성합니다. 그러나 이것은 나에게 매우 해로운 해결책처럼 보입니다.

모범 사례를 사용하여이 작업을 수행 할 수있는 무언가가 PHP (또는 대안으로 어떤 종류의 도우미 라이브러리)에 있습니까?

답변

5

간단히 말해, 아니요, 그런 것은 PHP에서 기본적으로 사용할 수 없습니다. 이유를 이해하려면 PHP가 각 요청에 대해 빌드 된 전체 환경을 가지고 있다는 것을 이해해야하며, 요청이 끝나면 PHP가 종료됩니다. PHP 이 세션 변수 당 $ _SESSION을 저장하지만, 문서를 파고 나면 각 요청 도중에 변수가 만들어지는 것을 볼 수 있습니다. PHP (또는 mod PHP)는 다른 "응용 프로그램 서버"와 근본적으로 다릅니다. 기본적으로 애플리케이션 서버가 아닙니다. 요청 당 스크립트 러너입니다.

지금 당장 내가 잘못 이해하지 마라. PHP는 애플리케이션 레벨 데이터 저장소를 제공 할 수는 있지만, 데이터베이스 나 디스크를 가져와야한다. 그러나 이것이 성능을 최적화하는 것에 대해 걱정하지 마십시오. 성능이 문제가되는 것으로 나타납니다. 그리고 나는 100 번 중 99 번을 추측 할 것입니다. 성능이 당신이 쓴 약간의 코드로 인한 문제가 아니라면, 당신은 아주 작은 memcached 서버를 구축 할 수있는 자원을 갖게 될 것입니다.

+0

아, 네. PHP가 웹 서버에 의해 호출되는 방법을 머리에서 벗어나게했습니다. 나에게 상기시켜 줘서 고마워 :) –

0

예를 들어 Zend_Cache 라이브러리를 살펴보십시오. 여러 백엔드에서 캐시 할 수 있습니다.

관련 문제