2010-11-28 19 views
2

実際のディレクトリパス(One/Two/Three.php)に変換する絶対名前空間名(\ One \ Two \ Three)むしろ単純です。ディレクトリ構造に対応する名前空間名(絶対パスと相対パス)を持つクラスの自動ロード

しかし、現在の名前空間に名前空間)を使用して(PHPプロセスで初めてインスタンス化されたクラスを自動読み込みする方法があるかどうか不思議です、 例えば)。

「__autoloadは」グローバル名前空間で実行され、唯一の私はそれがどこのクラスを検索する場所を知っている可能性がどのように見ることができません(名前空間のコンポーネントを含む、クラス名)パラメータを受け入れたよう。

しかし、私はいくつかのPHPウィザードは、絶対に名前空間を指定して名前を指定してクラスを指定することは非常に不便なので、これに対する解決策を見つけたと仮定します。

ありがとうございました!

答えて

1

あなたはいつもオートローダ内の完全な名前空間を取得します:

<?php 
namespace { 
    function __autoload($class) 
    { 
     var_dump($class);die(); 
    } 
} 

namespace One { 
    new Two\Three(); 
} 
?> 

出力:

string(13) "One\Two\Three" 
+0

ハハ、これは非常に古い質問に答えるためのおかげで。私もこれを見つけましたが、質問を削除する方法を見つけることができませんでした。ありがとう! –

関連する問題