はじめに LaravelのControllerは、引数をタイプヒントすると依存性を解決してくれますが、 仕組みはどうなっているのか気になったので、簡易的なものをつくってみました。 以下のコードが依存性解決の例です。不思議なことに(?)Requestのインスタンスを自動で引数に渡してくれます。 今回は、DIコンテナを自作し、これと似た挙動を実装します。 例 public function store(Request $request) { $name = $request->input('name'); } サンプルコード GitHubにPHPのサンプルコードを載せています。 DIコンテナとは interfaceなどの抽象と、それに対応する具象を管理するオブジェクトだと認識しています。 基本的には、DIコンテナは以下の流れで使用されます。 抽象と具象を渡してDIコンテナに登録する 抽象を渡し