PHPの「__construct」メソッドについて/勉強中

Laravelの仕組みについて勉強していたところ、「__construct」というものが出てきたので、copilotに聞いたことをメモしておきます。 Bladeテンプレートで次のようなコードによりセッションのmessageがMessageクラスのインスタンスに引数として渡されます。 このとき、セッションのmessageが、Messageクラスの中の「__construct」の引数として渡されることにより処理がうまく流れていくのですが、なぜ単にMessageクラスの引数であるだけのmessageが、ちゃんとその中でも「__construct」の引数として扱われるのか、言い換えると、Messageクラスの中に「__construct」以外のfunctionが存在していても、その引数はほかのfunctionではなく「__construct」に渡すものであるとどういう風に判定しているのだろうか。この点が疑問でした。 調べたところ、「__construct」というのはPHPに用意されている特別なメソッドであり、クラスのインスタンスが生成されるときに最初に実行される性質を持つようです。そのため、クラスの中に「__construct」が存在すれば、クラスに対して渡された引数は、インスタンス化時に必ず「__construct」の引数として処理されるとのことです。ちなみにこういった「__」で始まるものはほかにもあって、PHP標準の機能として用意されているマジックメソッドというそうです。 代表的なマジックメソッド これまで素のPHPの基本を学び、Dockerの環境構築もようやく完了し、ついに本格的に勉強を進められるようになったけど、勉強すればするほど新しい疑問が出てきて、習得までには結構時間がかかりそうです。

Laravelのディレクトリ構造について/勉強中

現在、PHPのLaravelを学習中です。MVCアーキテクチャの各役割がどこのディレクトリに格納されているかいつも混乱するため、Copilotに聞いたので、ここにメモしておきます。 ビュー→ルート→コントローラという処理の流れ。①ビューの内容がブラウザに表示されるため、ビューの中にフォームタグが書いてあるが、フォームの中に、action=”{{route(‘post.store’)}}”などといったルートヘルパーを書いておく。②ルートの中で、どのルートヘルパーを記述したらどこのコントローラーを使用するかが設定されている。③フォームの送信ボタンを押したら、ルートヘルパーに対応したコントローラの中に書かれた処理が行われる。 ミドルウェアっていうのは何だろう。まだ勉強中なのでCopilotに聞いたけどよくわからなかった。とりあえず、12月末までには簡単なwebアプリを作れるようにLaravelを習得します。