コードロード

エラー討伐

【PHP】SERVER_NAMEじゃなくてphp_unameで開発環境と本番環境を振り分ける

困ったこと

filter_input(INPUT_SERVER, 'SERVER_NAME')

これでサーバーの名前をとって、 localhost かどうかで振り分けていたが、PHPUnitを使った時に、 null で返ってきたので代替法。

解決策

php_uname('n')

これでPC名がでる。

PHP が稼動しているオペレーティングシステムに関する情報を返す https://www.php.net/manual/ja/function.php-uname

こんな感じになった。

if (mb_strpos(php_uname('n'), '***.localhost') !== false) {
// 開発環境

} else {
// 本番環境
}

参考

PHPの$_SERVER['SERVER_NAME']が取れなかったので調べた - Qiita