2011-10-22 2 views
0

현재 MVC 패턴을 기반으로 웹 응용 프로그램을위한 작은 개인 프레임 워크를 만들고 있습니다. 이 프레임 워크에서 일부 페이지와 템플릿은 여러 파일로 동적으로 생성됩니다. 그러나 특히 이러한 템플릿은 자주 변경되지 않으므로 일부 형식의 캐싱을 만들고 싶습니다. 원래 소스 파일이 변경되면 캐싱 된 파일 만 업데이트하는 것이 이상적이며 원본 파일 중 하나가 변경된 후 첫 번째 요청에서 캐싱 된 파일을 업데이트하려고합니다. 하지만 1 캐시 파일은 여러 소스 파일로 구성되기 때문에 어떤 소스 파일이 캐시 파일에 속하는지 알 수있는 방법이 필요하므로 업데이트를 확인하는 데 필요한 파일을 알고 있습니다.동적으로 생성 된 파일을 캐싱하는 PHP

데이터베이스에 테이블을 사용하거나 정보를 저장하는 별도의 파일을 사용하는 아이디어가 떠 올랐습니다. 그러나 하나 이상의 파일을 읽어야하거나 일부 데이터베이스 IO를 수행해야하기 때문에 각 페이지 요청에 약간의 추가 오버 헤드가 필요합니다. 가능한 적은 오버 헤드를 가지기 위해 사용할 수있는 다른 기술이 있습니까?

ps. 캐싱은 실제로는 필요하지 않습니다. 왜냐하면 나는이 웹 사이트에 너무 강력한 서버의 몇몇 작은 웹 사이트에만 사용할 것이기 때문입니다. 그러나 캐싱 기술에 익숙해지는 것이 좋은 습관이라고 생각합니다.

+0

정말로 필요한 경우 캐싱으로 시작하십시오. 그렇지 않으면 정확히 무엇이 캐싱되어야하는지, 그렇지 않은지 구체적으로 말할 수 없습니다. – hakre

+1

동적으로 생성 된 파일을 "다시 컴파일"하고 출력을'.html' 파일 또는 다른 것으로 저장하는 함수를 작성한 다음 파일 중 하나를 업데이트 할 때 해당 스크립트를 실행하십시오. –

+0

@Hakre -하지만 정말로 필요하기 전에 잡기에 익숙해지는 것이 좋은 생각이라고 생각하지 않습니까? 나는 오류가 허용 될 수없는 중요한 환경에서 새로운 것을 시도하는 것보다 훨씬 더 많은 것을 망칠 수없는 소규모 환경에서 이런 종류의 일을 수행하는 것이 더 나을 것이라고 생각합니다. – Tiddo

답변

0

PHP APC를 살펴보면 템플릿에 대한 SHA1 해시를 만들고 만료 시간이 긴 캐시에 저장할 수 있습니다. 내용이 변경되면 캐시에 플래그를 만들 수 있고 캐시와 파일 시스템을 비교하여 문서를 검색 할 수 있습니다.

관련 문제