0

名前空間を使用するようにOO PHPサイト(MVC構造に大まかに従う)を書き直そうとしています-そしてPSR-0に従いたいです。

現在のサイトには、構成データの取得などを処理するためにあちこちで呼び出す静的メソッドでいっぱいのクラス(APPと呼ばれる)があります。APP::get_config('key').

明らかに名前空間では、私は呼び出す必要があります\TheNameSpace\App::get_config('key')。私はこのクラスを頻繁に使用するので、使用するたびに名前空間にプレフィックスを付ける必要がないようにしたいと考えています。通常はサブ名前空間の下にある他のクラス内からメソッドを呼び出します。そのため、ファイルの先頭で名前空間を変更しても実際には機能しません。

だから、私の質問は、毎回名前空間をプレフィックスすることなく、どこでも呼び出すことができるメソッドを持つ「グローバル」クラスを持つ最も簡単な方法は何ですか?

4

3 に答える 3

0

スクリプトの上部に追加します

use TheNameSpace\App as MyApp

例えば。その後、次のように使用できます

app = new MyApp();

スクリプトで。もちろん、ここでエイリアスを使用する必要はありません。ただ

use TheNameSpace\App
app = new App();

も動作します。

これを実装しているグローバルクラスはスタイルが悪いため、次のように実行しないでください。

class MyApp extends TheNameSpace\App { }

....
myApp = new MyApp();
于 2013-02-20T15:56:26.950 に答える
0
namespace Foo;
use Bar;

その後、あなたはする必要はありません\Bar\fn

だからあなたの場合:

namspace Foo;
use TheNameSpace\App;

App::get_config('blah')
于 2013-02-20T15:56:47.980 に答える
0

名前空間の使用/エイリアスに関するphpマニュアルのセクションをお読みください。

http://www.php.net/manual/en/language.namespaces.importing.php

「use」を使用して名前空間を除外できます。好きな名前を付けることができます。

use TheNamespace\App as App //You can name it anything here
App:config('key');
于 2013-02-20T15:57:23.063 に答える