У нас есть веб-разработчики как на 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/');
}
Мне очень хотелось бы услышать, как другие решили эту проблему.
Я делаю аналогичный подход, основанный на доменном имени для моего сервера разработчиков, промежуточного и производственного серверов. Я бы рекомендовал поместить всю конфигурацию, зависящую от платформы, в один файл php, поэтому он не распространяется по всему коду. – bumperbox
имеют per- файлы конфигурации платформы, такие как _.../WIN32/platf.php_ и переменные, несколько похожие на $ PLATF_CFG_DIR (относительно текущего файла) и $ PLATF, которые при совместном использовании указывают на конкретные настройки платформы. – bobah