2012-05-14 2 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

Я делаю аналогичный подход, основанный на доменном имени для моего сервера разработчиков, промежуточного и производственного серверов. Я бы рекомендовал поместить всю конфигурацию, зависящую от платформы, в один файл 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

Смежные вопросы