0

私の 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に対して「上書き」されませんよね?ご意見ありがとうございます。

4

1 に答える 1

1

定数は、スクリプトの存続期間中にのみ存在します。Web インスタンスとコンソール インスタンスは、異なるプロセスで実行されているため、パスが交差することはありません。あなたがしていることをするのは完全に節約です。

于 2013-07-05T08:34:12.853 に答える