【Laravel】Controller(コントローラー)を使ってテキストを表示する!
PHPバージョン:7.1.14
Laravelバージョン:5.7.9
今回はLaravelのController(コントローラー)という機能を使って文字列を表示します!
(前回のrouteに関する記事はこちらから。)
Controller機能を使う前に、MVCパターンについて簡単に触れておきましょう!
MVCパターンについて
MVCパターンは多くのフレームワークで採用されているデザインパターンです!
MVCパターンはLaravelでも使うことができます。
アプリケーションをModel, View, Controllerと3つの機能に分け管理するので、
プロジェクトの見通しが良くなります。
M: Model
MVCのM: Modelはビジネスロジックを担当します。
具体的には、データベースへのデータ保存などに使われます。
Modelの用途は技術者によって大きく異なるため、
Laravelは「Models」というディレクトリをデフォルトで用意していません。
(ControllerとViewは用意されている。)
V: View
続いてMVCのV: Viewです。
ブラウザの表示などUI周りを担当します。
Laravelには、bladeというテンプレートが用意されています。
ゲーム開発に使われることはほぼ無いかと思われます…!
C: Controller
MVC最後のC: Controllerです。
ModelとViewをコントロールする役割を担っています。
Modelにデータの処理を任せたり、
ViewにUI表示を指示したりします。
Controllerの作成
それではまず、Controllerを作成していきます。
Controllerはartisanコマンドで作成できます。
(artisanはLaravel専用のコマンド。コンソールやコマンドプロンプトで使用。)
$ php artisan make:controller ArticleController
上のコマンドを実行すると、
app>Http>ControllersにArticleController.phpが作成されます。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ArticleController extends Controller { // }
app>Http>Controllers>ArticleController.php
Controllerクラスを継承したArticleControllerクラスが出来ました。
続いてshowという名前のメソッドを追記します。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ArticleController extends Controller { // ***** 開始 ***** function show() { return 'Articleページです!'; } // ***** 終了 ***** }
app>Http>Controllers>ArticleController.php
これでArticleControllerのshowメソッドを実行すると
ブラウザに「Articleページです!」と表示されるようになりました。
続いて前回編集した
routes>web.phpを修正します。
<?php Route::get('/', function () { return view('welcome'); }); // ***** 開始 ***** Route::get('/show', 'ArticleController@show'); // ***** 終了 *****
routes>web.php
前回はRoute::getの第2引数に無名関数を直接書き込みましたが、
Controllerを使う場合は'Controller名@メソッド名'
という形で記述します。
結果
"http://localhost:8000/show"にアクセスすると、
ArticleControllerのshowメソッドが実行されます!
Controllerを経由して、
ブラウザに「 Articleページです!」という文字を表示できました!
今回は単純な内容でしたが、
実際はControllerからデータ管理を担当するModelやUIを担当するViewへ命令を伝え、
処理を実行してきます。
今回はここまでです、ありがとうございました〜