DIコンテナとフレームワークの関係のあるべき姿とは?

DIコンテナは本来フレームワークの背後でひっそりと動いてユーザにその
存在を意識させないのがベストだと思う。

DIコンテナを前面に押し出して固有の定義ファイルを書かせているモノは
フレームワークの設計が不味いような気が...。フレームワークの定義
ファイルを最小化しつつDIコンテナの設定をフレームワークの定義
ファイルから得られた情報で行うのがベターではないだろうか?
カスタマイズの幅は限定されるが、扱い易くはなると思う。

DIコンテナ固有の定義ファイルがフレームワークの定義ファイルに
なっているモノは設計の不味さを通り越して、主役と裏方の逆転と
なってしまっている。主役であるはずのフレームワークが裏方の
DIコンテナにくわれてしまっているのである。必然的にユーザは
裏方であるはずのDIコンテナを強く意識せざるをえない。
デフォルトのまま使うならまだいいが、カスタマイズして使う場合、
DIコンテナ自体の機能の理解が必須となる。DIコンテナと
フレームワークが密着しているのでその構造・挙動をある程度、
理解していないとカスタマイズが行えない。カスタマイズして
使おうとするといきなり敷居が高くなるのである。

DIコンテナとフレームワークの定義ファイルが完全に独立している
モノは良い設計とはいえないが主役と裏方の逆転のケースとは
一長一短ではないかと思う。DIコンテナとフレームワーク
密接に統合されていない分、切り分けが容易であり扱いやすい。

DIコンテナのフル機能を利用できる設計がフレームワークの設計として
優れているとは個人的に思えない。