1
function app($key = null, $value = null)
{
    if (null !== $key && null !== $value) {
        $GLOBALS['__app'][$key] = $value;
    }

    return (object) $GLOBALS['__app'];
}

したがって、私は通常、このような関数を持っており、Request オブジェクトや Session オブジェクトなどを保存して、アプリケーションのどこでも使用できるようにしています。例えば:

app('req', new Request);

そして、私はそれを次のように使用します:

app()->req->getMethod();

私の質問は、これは正確には何ですか? この機能はサービス ロケータやサービス コンテナとして機能しますか? コードを文書化しようとしていますが、このコードを説明するのに苦労しています。

4

2 に答える 2

0

これは、グローバル (アプリ) 変数を作成する単なるハッシュ マップです。app()->reqオブジェクトにキャストされるため、代わりにその値にアクセスできます$map = app(); $value = $map['req']

于 2012-09-17T17:19:40.687 に答える
0

これはサービス コンテナーです。詳細については、次を参照してください。

モック化されたオブジェクトを注入できるため、シングルトンよりも優れているため、単体テストがはるかに容易になります

于 2012-09-17T17:22:26.520 に答える