Php 如何在版本控制下处理特定于平台的代码

Php 如何在版本控制下处理特定于平台的代码,php,svn,version-control,Php,Svn,Version Control,我们有在Windows和Linux上使用SVN的web开发人员。一些PHP文件引用本地路径(例如Smarty/Geolocation库),因此在各自的平台上有所不同。我们需要对这些文件进行修订,但是开发人员开始在这些特定文件上添加svn:ignore属性以防止冲突。我能想到的唯一解决方案是放一些代码来确定正在运行的操作系统,但这看起来像是生产代码的膨胀 if (PHP_OS == "WIN32" || PHP_OS == "WINNT") { define('SMARTY_DIR

我们有在Windows和Linux上使用SVN的web开发人员。一些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/');
    }

我很想听听其他人是如何解决这个问题的。

典型的解决方法是使用config.php.template文件。模板文件是版本控制的,开发人员会将其复制到config.php以进行本地设置。

我会根据我的开发人员、临时服务器和生产服务器的域名采取类似的方法,我建议将所有依赖于平台的配置放在一个php文件中,因此,它不会散布在整个代码中。我们有一个每个平台的配置文件,比如…/WIN32/platf.php和变量,有点像$platf_CFG_DIR(相对于当前文件)和$platf,它们一起使用时指向特定于平台的设置……而config.php是svn:ignored。