Why
Laravelを初めて勉強し始め、Model周りのクラスをインスタンス化せず使えることがわかりました。その理由ついて勉強しました。
答え
Modelクラスは、Eloquent ORMと共にデータベーステーブルとマッピングされます。これにより、Modelクラスのインスタンスは、データベースクエリビルダやORM機能を使用して、データベース操作を行うことができます。
理由
Eloquent ORMはLaravelのService Containerを使用して、Modelクラスに関連する依存関係の注入を処理します。Service Containerは、Laravelアプリケーションで使用されるすべてのオブジェクトを管理し、オブジェクトの生成、注入、解放などを自動的に処理することができます。
依存性注入とは?
依存関係の注入は、Service Containerを使用して、クラスインスタンスが必要とする他のオブジェクトを外部から注入することによって実現されます。これにより、モデルクラスは、データベース接続、キャッシュ、ルーティングなど、他のオブジェクトに対する依存関係を直接処理する必要がなく、外部から注入して使用することができます。