私の Web アプリケーションには、次の定数があります。
//set global path if not yet set
if(!defined('FILE_ROOT_PATH')){
define('FILE_ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
}
そのため、コードは移植可能であり、絶対パスを含める/要求することができます。
現在、CLI および CGI から実行可能でなければならない PHP ファイルがいくつかあります。もちろん、CLI から $_SERVER を使用することはできません。
そこで、CLI と CGI で実行される特別なファイルで、次のコードに変更しました。
//set global path if not yet set and set it via dirname for CLI
if(!defined('FILE_ROOT_PATH') && strlen($_SERVER['DOCUMENT_ROOT'])){
define('FILE_ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
}else{
define('FILE_ROOT_PATH', dirname(dirname(__FILE__)));
}
したがって、CGI は最初の「define」を実行し、CLI は 2 番目を実行します。
そうすることは安全ですか?CLIで実行すると、定数はCGIに対して「上書き」されませんよね?ご意見ありがとうございます。