generated at
Service Container
Symfony特有の話か、一般的なサービスコンテナの話かを判別せずに書いているので注意mrsekut


機能拡張アプローチの統一
サービスの構築方法の管理
DIの利用



複数のService Classをサービスコンテナで一元管理する
サービスを作りたい→サービスを定義して、コンテナに登録する
各サービスのinstance化をコンテナに一任する
だから自分でinstantiateしなくていい #??


何が嬉しい?
DIが楽になる
サービスA内で、別サービスBのinstanceを利用する場合は
Aのconstructor内で、Bをnewしたりするが、
後にBのconstructorの引数が増えると、Aでnewしたところも修正しないといけない
これが連鎖して辛くなる
この処理をサービスコンテナが勝手にやってくれる


Symfonyの場合
サービスコンテナにはどんなclassも登録できる
逆に言えば全部サービスである
services.ymlで登録する必要がある
サービスclassを作るだけではつかえない 



どういう概念?
PHPのClass?
もっと抽象的なもの?
DDDの4層のレイヤー例のどこに存在する
Service Classとは何が異なる?
特定のframework固有の概念?
いつつかう?

どういう手順でServiceをサービスコンテナに登録する?