2016-04-14 41 views
4

"init.php"という名前のファイルがあります。ここでは、すべてのクラスを名前空間に含めます。その1つはMyClass \ Helperです。名前空間: "グローバルとして使用"

これらのクラスの後では、常にinit内にMyClass \ Helperを使用する別のファイル(b.php)が含まれています。

最後に、このファイル "init"は、MyClass \ Helperも使用するインデックスで必要です。だから、

init.php 
    -> Require libs/Helper.php (final namespace: MyClass\Helper) 
    -> Require b.php 
     -> Use MyClass\Helper 

index.php 
    -> Require init.php 
    -> Use MyClass\Helper 

今、(私が使用している場合は、クラスの他のファイルには見られない「私はすべてのクラス use MyClass\Helper as Helperの混入した後、私のinit.phpに入れたいが、それは動作しません。ヘルパー "の代わりにMyClass \ Helper)、私は手動でb.php(クラスの後に含まれています)とindex.phpに入れなければなりません。

「すべてのファイルの「使用」として「保存」する方法はありますか?

+1

PHPのマニュアルhttpに従って、名前空間の機能(特にキーワード 'use') ://php.net/manual/en/language.namespaces.importing.php >インポートルールはファイル単位であり、インクルードファイルは親ファイルのインポートルールを継承しません。 –

+1

あなたはこの回答に興味があるかもしれません:http://stackoverflow.com/a/19890311/488666 –

+0

Frosty Z、あなたのコメントは正しいです。誰もがそれをアップヴォートすることができるように答えとして再検討することを検討してください。名前空間は、PHPや他の多くの言語でファイル単位で処理されます。 –

答えて

0

アイデア全体は何も入れないようにすることです。 spl_autoload_registerを使用してクラスオートローダーを登録し、 'include'と 'require'を使用する必要がないようにしてください。

関連する問題