Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【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メソッドが実行されます!

f:id:hiyotama:20181102152341p:plain

Controllerを経由して、
ブラウザに「 Articleページです!」という文字を表示できました!

今回は単純な内容でしたが、
実際はControllerからデータ管理を担当するModelやUIを担当するViewへ命令を伝え、
処理を実行してきます。

今回はここまでです、ありがとうございました〜