본론으로 들어가서
컴파일에 대해 묻고 싶습니다.
한번 컴파일이 되면 파일이 수정되지 않으면 다시 컴파일하지 않고 계속 사용되는 것으로 알고있습니다.
그런데 컴파일 디렉토리를 절대 경로로 지정할경우 같은 이름의 파일이 여러 디렉토리에 있을경우 개별 같은 이름의 파일이 호출될때 마다 바뀌어서 다시 컴파일 되는거 맞나요?
그럼 컴파일 경로를 상대 경로로 지정해서 사용하면 더 나은거 아닌가요?
그리고 제가 말씀드린게 맞다면 컴파일 디렉토리에 파일명만 저장하지 말구
디렉토리명까지 지정해서 저장하면 위의 문제가 발생하지 않지 않을까요?
말이 조리있게 되지 않은거 같아 이해를 하셨는지 모르겠네요.
관리자님 답변 부탁드립니다.
관리자
컴파일 디렉토리의 하위디렉토리가 템플릿 디렉토리의 하위디렉토리와 똑같이 만들어지기 때문에 충돌을 걱정하지 않으셔도 됩니다.
04-01-29 20:02
궁금이
컴파일 경로를 절대 경로로 지정했을경우는 템플릿 하위 디렉토리가 아닌 컴파일 디렉토리 1군데 다 저장되기 때문에 파일이 바뀝니다.
04-01-29 20:06
관리자
템플릿 디렉토리는 상대경로로 지정하고, 컴파일 디렉토리는 절대경로로 지정했다면 그런 문제가 생깁니다. 둘 다 절대 경로로 지정하시거나 상대 경로로 지정하시면 됩니다.
class Template_
{
var $compile_ext = _TPL_COMPILE_EXT;
....
}
저는 이런식으로 해서 템플릿 디렉토리는 상대, 컴파일 디렉토리는 절대 경로로 해서 사용해 봤는데 문제 없는거 같습니다.
혹 저처럼 사용하시는 분들은 참고 하세요.
관리자님 감사합니다.
04-01-30 09:41
관리자
좋은 팁이네요.
04-01-30 10:08
관리자
단 흔한 경우는 아니지만 PHP_SELF 가 256 자 이상일 경우 오류가 생기기 때문에 템플릿엔진 자체에서 일반적으로 적용할 수는 없습니다. crc32나 md5 를 생각했던 적이 있는데, 이것도 희박하지만 데이터의 유일성을 보장하지 못하는 문제(다른 문자열이 같은 코드로 변환)가 있습니다.
04-01-30 10:20
이삼구
ini_alter()를 이용해서 include_path 환경변수를 dirname(__FILE__)로 강제설정하게 되면 상대경로를 절대경로처럼 쓸 수 있는데, 저는 그렇게 사용하고 있습니다.
전에 쓴 글처럼 이미지 같은 서버가 따로 있거나 하는 경우를 생각하면 adjustHttpPath(제가 만든 필터.. --;)를 적용시키면 거의 완벽하게 돌아가더군요. 서버가 몇개이던 어떻게 돌아가던... ^^
참고하세요.