名前空間からの定数の使用に問題があります。定数を定義してそのまま使おうとすると、PHPが見つからないようです。たとえば、定数を含むファイルには、次の行に沿ったコードがあります。
namespace \my\namespace\for\constants;
const DS = DIRECTORY_SEPARATOR;
次に、消費ファイルに次のものがあります。
namespace \some\other\namespace;
use \my\namespace\for\constants\DS as DS;
echo (realpath (DS . 'usr' . DS 'local'));
ただし、期待どおり「/usr/local」をエコーする代わりに、次の通知と空の文字列が表示されます。
注意: 未定義の定数 DS の使用 - 'DS' を想定
次のようにコードを変更すると:
use \my\namespace\for\constants as cns;
echo (realpath (cns\DS . 'usr' . cns\DS 'local'));
期待どおりの結果が得られますが、定数を直接引き込むことができるよりも明らかに不便です。
名前空間でクラス/インターフェイス/特性をエイリアスできますが、定数もエイリアスできませんか? できるとしたら、どうやって?