イイダリョウのブログ。【Laravel】MVCのコントローラ(C)ことはじめ(3年B組金八先生を表示する!)2019-06-13【Laravel】MVCのコントローラ(C)ことはじめ(3年B組金八先生を表示する!)PHPLaravelの続きです。前回はルーティングファイルでページ生成、パラメータ読み込みをしました。今回は「MVCアーキテクチャ」の「C」にあたる「コントローラ」を理解する。クモのようにコツコツとMVCとは何かMVCとは何か。Mはモデル(Model)、Vはビュー(View)、C(Controller)はコントローラ。習得中の書籍「Laravel入門」によれば...モデル(Model):データ処理全般を担当。DBにアクセスする処理全般ビュー(View):画面表示を担当。表示に使うテンプレートに相当コントローラ(Controller):全体の制御。今回の主役、コントローラ(C)って文字通り指揮者みたいね。以前の記事でLaravelのファイル構成を見た時に開いたwelcome.blade.phpというファイル。このファイルがある場所は/resources/views/だった。このviewsはMVCのビュー(V)であると予想。クモのようにコツコツと残るモデル(M)はDB絡みなので今後改めて見ていきたい。コントローラ(C)を作るそれでは引き続き「Lara入」を参考に進めていく。ターミナルを開いてcdコマンドでLaravelのディレクトリに移動。/Applications/MAMP/htdocs/hogelaravelのartisanコマンドでコントローラを作ると初期のテンプレート状態になっている。HelloControllermake:controllerはコントローラを作るコマンド。HelloControllerはコントローラ名。successfully.ファイルができたか見てみる。//}名前空間namespaceはApp\Http\Controllersに配置されている。Illuminate\Http\パッケージ内にあるRequestを使える状態に(use文)HelloControllerクラスを定義。Controllerクラスを継承(extends)名前空間てカッコいい名前!範囲は先ほど見にいったディレクトリだ。名前空間とは、文字通り名前の空間のことで、ここからここまでのコードが○○という空間に属していると定めることができます。空間が違えば、同じ関数名を定義して使うことができます。あと、バックスラッシュがでてきた。名前空間に属する関数を呼ぶときは、○○の名前空間にある関数だよと記述する必要があります。(バックスラッシュ)を記述し、その後に関数名を記述します。バックスラッシュは、円記号で入力できます。キーワードを使うことで、名前空間などをインポートしたり、エイリアスを作成することができます。Qiitaアクション(処理)を追加コントローラにアクション(処理)を追加する。<p>このページはLaravelの「/app/Http/Controllers/」ディレクトリの中の「HelloController.php」の中に書いたrainenクラスを読み込んでいる。<p>複数のパラメータを読み込んで表示してみる。</body></html>EOF;}}HelloControllerクラスの波カッコの中にアクションを書くrainenメソッドを定義。引数は3つで$nen、$kumi、$sensei。「何」など引数がない場合の代替文字も設定。rainenメソッドの中、ヒアドキュメントEOFを返す。ヒアドキュメントEOFの中のHTMLに{$nen}などの引数のワードが含まれている。見ての通り、前回の記事と同じような内容です。複数のパスを読み込む設定。メソッドの頭にあるpublicは「アクセス修飾子」。どこからでもアクセス可能。行下げのスペースやタブでもダメみたい。この質問が参考になった。phpで謎の構文エラー|teratailルートを割り当てるアクションを実行するために、ルートを割り当てる。/routesディレクトリのweb.phpを開く。'HelloController@rainen');パスrainenでHelloControllerのrainenクラスを実行。nen、kumi、senseiのパスを読み込んでページ上に表示してくれるはず。ルーティングについても前回の記事を参照。クモのようにコツコツとページを開いてみる(金八先生の表示!)ちゃんとページが生成されるか開いてみる。※参考:https://vast-meadow-11880.herokuapp.com/rainenやた!表示された!!「何」「誰」などもちゃんと表示されている。