0
A
答えて
3
多くの異なる方法があり、すべてが賛否両論あります。
まず、すべてのサービスは何らかの種類のオブジェクトなので、いつでも問題のオブジェクトを自分で作成できます。あなたは多くの参考文献を扱わなければならないかもしれませんが、可能です。これはDependency Injectionのアイデアを損なうので、あなたがすべきことではありません!
第二の方法は、あなたのクラスにサービスを注入です:
class MyClass{
public function __construct($session){
// ...
}
}
class MyContainer extends Controller{
public function SomeKindOfAction(){
$myClass = new MyClass($this->get('session'));
}
}
あなただけのコントローラ内のクラスを使用する場合、これはOKかもしれません。 MyClassのようなネストされたリレーションがある場合は、セッションが必要な別のクラスを作成します。複雑な問題と同様に、密結合(回避する)を実行する可能性があります。
あなた自身のサービスを作成し、そこに必要なものを注入するのが最善の方法です。そこには多くの文書がありますので、上記のMyClassを使用して簡単な例を示します。
services.yml:
services:
my.myClass:
class: /Acme/DefaultBundle/MyStuff/MyClass
arguments: ["@session"]
今、あなたのクラスは、サービスとしては(誰が、それが簡単ということだと思うだろう!)、あなたはあなたのコントローラ内で使用することができます:
class MyContainer extends Controller{
public function SomeKindOfAction(){
$myClass = $this->get('my.myClass');
}
}
今、あなたは、コンストラクタや方法を考える必要はありませんあなたのオブジェクトを取得するために、DIコンテナがそれを行います。詳細はhereをご覧ください。
関連する問題
- 1. Symfony2サービス
- 2. Symfony2のGmailサービス
- 3. Symfony2のサービスはシングルトン
- 4. Symfony2サービスの理解
- 5. Symfony2のサービス構造
- 6. Symfony2のサービスからのリダイレクト
- 7. サービスとしてのsymfony2イベントリスナー
- 8. Symfony2の - 外部闊歩ベースのWebサービス
- 9. symfony2インストールエラー:存在しないサービス "security.authentication.factory.form"
- 10. Symfony2でサービスを保存する場所
- 11. Symfony2サービスの作成後、コントローラの前で起動されるイベント
- 12. Symfony2のサービスで異なる種類のファイルを保存する
- 13. Symfony2の私は、次のクラス作成したサービス
- 14. symfony2の引数に動的なサービスIDがありますか?
- 15. Symfony2、動的DB接続/ Doctrineサービスの早期オーバーライド
- 16. symfony2のサービス層をもっと理解するには
- 17. symfony2でWebサービスの残りを作成する
- 18. symfony2:サービス内のクエリに最適な場所は何ですか?
- 19. symfony2が親サービスの奇妙な動作を継承する
- 20. Symfony2サービスは常にバンドルで宣言する必要がありますか? Symfony2ので
- 21. Symfony2のは、私がSymfony2ので働いていますし、メーラー・サービスへのアクセスが、常に、このエラーメッセージを取得しようとしていますメーラー・サービス
- 22. Symfony2でDoctrineサービスを拡張するには?
- 23. エンティティリポジトリにサービスを注入する方法Symfony2 doctrine?
- 24. symfony2 - コレクション型フォームをサービスとして定義する
- 25. symfony2 - コマンドでタグ付きサービスを見つける
- 26. Symfony2はWebサービスを通じてユーザーを認証します
- 27. Symfony2 ACLはサービスとして実装されていますか?
- 28. symfony2:テンプレートからサービスにアクセスする方法
- 29. Symfony2。サービスをインスタンス化するように強制する
- 30. Symfony2 FOSUserBundle - 存在しないサービス "security.user_checker"を要求しました
ありがとう – falinsky