2012-05-14 3 views
1

우리는 Windows 및 Linux 모두에서 SVN을 사용하여 웹 개발자를 보유하고 있습니다. 일부 PHP 파일은 로컬 경로 (예 : Smarty/Geolocation 라이브러리)를 참조하므로 해당 플랫폼마다 다릅니다. 이러한 파일을 수정해야하지만 개발자는 충돌을 방지하기 위해 이러한 특정 파일에 svn : ignore 속성을 추가하기 시작했습니다. 내가 해결할 수있는 유일한 해결책은 어떤 코드가 실행 중인지를 결정하기위한 코드를 넣는 것입니다. 그러나 이것은 프로덕션 코드에서 부 풀리는 것처럼 보입니다.개정 관리하에 플랫폼 특정 코드를 처리하는 방법

if (PHP_OS == "WIN32" || PHP_OS == "WINNT") { 
     define('SMARTY_DIR', 'c:/xampp/smarty/'); 
    } else { 
     define('SMARTY_DIR', '/usr/local/lib/php/Smarty/'); 
    } 

다른 사람들이이 문제를 어떻게 해결했는지 알고 싶습니다.

+1

내 dev, 준비 및 프로덕션 서버의 도메인 이름을 기반으로 유사한 접근 방식을 사용합니다. 플랫폼 전체가 하나의 PHP 파일에 종속되어 있으므로 코드 전체에 확산되지 않도록하는 것이 좋습니다 – bumperbox

+1

per- _.../WIN32/platf.php_와 같은 플랫폼 구성 파일과 $ PLATF_CFG_DIR (현재 파일에 비례)과 같은 변수와 함께 사용하면 플랫폼 별 설정을 가리키는 $ PLATF가 있습니다. – bobah

답변

2

일반적인 방법은 config.php.template 파일을 사용하는 것입니다. 템플릿 파일은 버전 제어되며 개발자는 로컬 파일을 config.php에 복사합니다.

+1

... config.php는 svn : ignored입니다. – deceze

+0

그런데, 고마워. – vinnyjames

관련 문제