平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【php】MVCの基本

今回から少しPHPも勉強していきます。

今回の目的

今回は基本であるルーティング、コントローラ、ビューを作成して
Hello World!という文字を表示させます。  

環境

PHP 7.3.18
Doctor(仮想環境)
Laradock
lalabel(フレームワーク)
※今回は開発環境は準備できている前提にします。  

手順

1.ルーティングの作成
/routes/web.phpを以下のように編集

<?php

Route::get('/hello','HelloBotController@index');

getメソッドに対して2つの引数を渡してます。
/helloはURLです。localhost/helloのURLを示してます。
HelloBotController@indexはコントローラの処理を示してます。  

つまりまとめると「localhost/hello」にアクセスした際に   HelloBotControllerのindexアクションに定義された処理をするという
理解になります。

2.コントローラの作成
まずは以下のコマンドでコントローラを作成します。  

docker-compose exec workspace php artisan make controller HelloBotController

php artisan make controller〜のコマンドでコントローラを作成します。

・注意
docker-compose exec workspaceは著者の環境では
Docker Composeという仕組みを使っているため使用してます。
そのため開発環境によっては不要です。  

次にコントローラの処理を記述します。 app/Http/Controllers/HelloBotController.phpファイルを
以下のように編集します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloBotController extends Controller
{
    public function index()
    {
        return view('hello.index')   
     }
}     

public〜を追記してます。indexアクションをhello.indexのviewを
return(表示させる)するように記述してます。

3.ビューの作成
/resources/viewsフォルダに/hellobotフォルダを作成して
index.htmlのファイルを作成します。  

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>hello-bot</title>
</head>
<body>
  <h1>Hello world!</h1>
</body>
</html>

以上の設定ができていれば以下のような画面になります。 Image from Gyazo

まとめ

PHPを触ったのが初めてでしたが 流れはrailsとあまり変わらないことを実感できました。 コードの書き方やメソッドなどは順次覚えていきたいです。

気づけばプロ並みPHP 改訂版--ゼロから作れる人になる!