Laravel の特徴として良く挙げられるファサードクラスの仕組みをコードで見てみました。 Laravel のファサードクラス Laravel では、Input::get()やRoute::get()など、クラスメソッドでフレームワークの機能を利用する場面が多くあります。 これは一見すると、InputやRouteクラスで提供されているクラスメソッドを実行しているだけに見えますが、これらのクラスにメソッドの実装があるわけではなく、実際はIoCコンテナに格納されているインスタンスのメソッドを実行しています。 例えば、InputであればIlluminate\Http\Requestクラス、RouteであればIlluminate\Routing\Routerのインスタンスメソッドが実行されます。 これらのインスタンスは、IoCコンテナにて管理されており、ファサードクラスのクラスメソッドが実行される