2

symfony2 でアプリケーション (シングルトン) インスタンスを取得するために、他の php フレームワークのように ::getInstance() のようなものを作成する方法が見つかりません

私は sfContext::getInstance() だけを購入しましたが、動作せず、symfony1 のメソッドのように見えます

さらに情報を追加します。

私はいくつかのクラスを持っています - 抽象クラスPost {}。このクラス内でいくつかのアプリケーション構成、環境変数を取得したいと考えています。このすべてをコンストラクター メソッドに入れたくはありません。代わりに、アプリケーション インスタンスを呼び出して、必要なものをすべて取得したいと考えています。

4

1 に答える 1

0

web/app.php を見ると、アプリケーション インスタンスが kernel という名前の単なるグローバル変数であることがわかります。

    $kernel = $GLOBALS['kernel'];
    die(get_class($kernel));

ただし、@san40 がドキュメントを読むように言った理由は、おそらく実際には必要ないからです。SF2 は SF1 とは大きく異なります。したがって、インスタンスが必要な理由を説明した場合、誰かが別のアプローチを提案できる可能性があります。

===================================

web/console を見ると、インスタンスを除くコンソール コマンドの同じ原則がアプリケーションと呼ばれることがわかります。

die(get_class($GLOBALS['application']))

ただし、アプリケーション インスタンスを使用して環境変数などをプルすることはお勧めしません。他に何もないとしても、オブジェクトはインスタンスに完全に依存します。依存性注入はあなたが望むものです。s2のドキュメントにあるものを読んでください。

于 2013-06-12T15:05:12.127 に答える