このサービスコンテナのbindメソッドで、TestEchoHelperメソッドのインスタンス化方法を登録します。第1引数のTestEchoってなんだ?と思ったかもしれません。これはサービスコンテナから「俺はTestEchoを使う!」って呼び出したときに、TestEchoHelperクラスのインスタンス化方法が実行されるようにしています。インスタンス化方法の名前を決めてるわけですね。今回は「’TestEcho’っていうインスタンス化方法で、TestEchoHelperクラスはインスタンス化される」という登録をしました。function()...)って書いても大丈夫です。これで「TestEchoHeplerクラスを呼び出す方法をサービスコンテナに登録する」準備が整いました。「インスタンス化方法をサービスコンテナに登録するサービスプロバイダ」をlaravel起動時に呼び出すようにする。呼び出そうとしているのはサービスプロバイダです。「サービスコンテナにインスタンス化方法を登録する処理を書くクラス」です。落ち着いて順番に追っていきましょう。laravelを入れたなら一回は見たことある場所じゃないでしょうか?ここのproviders配列内にクラス名を登録します。今回のAppServiceProviderはもう登録されていますね。ここに登録することで、laravel起動時にAppServiceProviderクラスのregisterメソッドとbootメソッド(あれば)が実行されます。laravel起動時ってリクエスト時だけじゃないの?って思うかもしれませんが、シェルなどの実行時も動きます。ファサードクラスを作るやっとFacadeが出てきました。このFacadeクラスもどこにおいても大丈夫です。今回はapp/Facadesディレクトリを作ってそこに置きます。このFacadeクラスでは何を書くかといえば、getFacadeAccesorメソッドで「サービスコンテナに登録されたインスタンス化方法の名前を返す」ことだけです。書いてもいいんでしょうけど。今回は手順3(覚えてますか?)で、サービスコンテナによるTestEchoHelperクラスのインスタンス化方法を「TestEcho」っていう名前にしたので、TestEchoを返します。別名を決めるやっとここまで来ました。これもconfig/app.phpです。見覚えがあるんじゃないでしょうか?実際に呼び出すことになるのはTestEchoFacadeクラスです。なんといっても窓口ですから。TestEchoFacade::って少し長いですね?なのでTestEcho::で呼び出せるようにします。手順3で「インスタンス化の方法」にもTestEchoと名付けてここでも同じ名前ですが、同じ名前にする必要性はありません。同じにした方がわかりやすい気もします。実際に使うやっと使えます!まずはコントローラーから。配下にあるので、絶対パスで指定しましょう。↑は画像ですが白文字背景+黒文字だけなのでわかりにくくてすみません。viewでも出してみましょう。こんな感じでカスタムヘルパーみたいなのを作れます。