在项目开发中,api地址为测试地址,上线时又要改为线上地址,由于通常又仅仅是uri的不同,所以只需要更改host部分,由于php中不支持在定义静态变量是使用静态变量操作的方式,但可以用常量操作的方式。
<?php
const MH_HOST_PROD = 'http://localhost:8080/prod';
const MH_HOST_DEV = 'http://localhost:8080/dev';
$env = 'prod';
Util::urlHostInit($env);
echo A::$MH_INFO;
class A
{
public static function setEnv($env)
{
if ($env == 'prod' && !defined('MH_HOST')) {
define('MH_HOST', MH_HOST_PROD);
} else {
define('MH_HOST', MH_HOST_DEV);
}
}
public static $MH_INFO = MH_HOST . '/profile.php';
}
class Util
{
public static function urlHostInit($env = 'dev')
{
A::setEnv($env);
// more
}
}