잠시 동안 웹 사이트가 생겨서 수년 동안 수백 개의 개별 PHP 파일로 성장했습니다. 약 2 년 전 나는 같은 웹 사이트의 모바일 버전을 만들었습니다. 필자는 주 파일 만 복사하고 모바일 용 헤더 및 바닥 글을 조정하여이 작업을 수행하기로 결정했습니다. 나머지는 예상대로 작동했습니다. 이 시점에서 50 %의 호환성을 말하고 싶습니다. 하위 디렉토리 중 일부를 복사하는 대신 ln -s
을 사용하여 링크를 만들 수 있다고 결정했습니다. 이것은 나머지 45 %를 해결했습니다.PHP - 다른 파일을로드하는 경우
최근 문제가 발생했습니다. 이 sym 링크 된 하위 디렉토리의 파일 중 하나는 모바일 버전과 전체 웹 사이트에서 크게 달라야합니다. 보통 파일의 경우 하드 카피를 만들고 내용을 수정하지만 sym 링크 된 디렉토리 내의 파일에 대해서는 불가능합니다.
누구에게이 문제가 있습니까? 이 문제를 어떻게 해결할 수 있습니까? 내가 파일 /tools/help/wizard/configure.php을 수정해야하는 경우
/var/www/domain.com/
/var/www/mobile.domain.com/
/var/www/mobile.domain.com/images -> /var/www/domain.com/images
/var/www/mobile.domain.com/tools -> /var/www/domain.com/tools
그때 난 그냥 그 파일
에 대한 고유 한 파일이 없습니다 : 여기 는 파일 레이아웃을 & 예입니다 이는 UGL 것 같아if (file_exists("/var/www/mobile.domain.com/_overwrite_/" . $requested_file)) {
// ... include it instead of running the actual file
}
: 나는 생각하지만, 뭔가를 확인하기 위해 모바일 header
파일을 수정한다 좋아하지 않는다
한 가지 방법 접근 방식. 아파치 지시어로 비슷하게 할 수있다. (나는 모른다.하지만 ModRewrite라고 생각한다.)
더 나은 접근 방법이 없다고 생각합니다. Mod-rewrite는 PHP가 아닌 사용자 (브라우저)가 보낸 HTTP 요청을 리디렉션/수정하는 데 사용됩니다. 아파치는 사용자와 PHP 사이의 "다리"입니다. – Kristian
여기에서 전환하는 것이 무엇인지 물어볼 수 있습니까, 아니면 페이지의 프리젠 테이션 논리입니까? 모바일 플랫폼을위한 다른 프리젠 테이션을 지원하는 비즈니스 논리가 변경 되었습니까? – Scuzzy
오토로더 또는 간단한 include 문을 사용합니까? –