山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

Laravel 学習 part. 1

Laravel を使う

パーフェクトPHP を進めてきましたが、フレームワークの部分が煩雑なので先に Laravel の方を学習しようかと思います。

Composer をインストールして、Laravel のプロジェクトを作成します。

composer create-project "laravel/laravel=5.4.*" laravelapp

windows Laravel環境構築 - Qiita

作成したプロジェクトのフォルダに移動し、コマンドライン

php artisan serve

を実行してサーバを立ち上げると、アプリケーションのページにアクセスできます。

f:id:yamakasa3:20191024161500p:plain

また、XAMPP を使う場合は、httpd.conf と httpd-vhosts.conf を編集して、public フォルダをドキュメントルートとします。

コントローラにアクションを追加する

次のコマンドでコントローラを追加します。

php artisan make:controller HelloController

追加したファイルに次のコードを記述します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{
    public function index()
    {
        return <<<EOF
<html>
<head>
<title>Hello/Index</title>
<style>
body { font-size:16pt; color:#999; }
h1 { font-size:100pt; text-align:right; color:#eee; 
     margin:-40px 0px -50px 0px; }
</style>
</head>
<body>
    <h1>Index</h1>
    <p>これは、Helloコントローラのindexアクションです。</p>
</body>
</html>
EOF;
    }
}

このコントローラを利用するために、we.php に次の文を追加します。追加したアクションを確認するために、"http://localhost:8000/hello" にアクセスします。

Route::get('hello', 'HelloController@index');

f:id:yamakasa3:20191028161037p:plain

PHPテンプレートをルート設定で表示

/hello という URL にアクセスした際に PHP ファイルで記述されて HTML テンプレートを呼び出します。

index.php
<html>
    <head>
        <title>Hello/Index</title>
        <style>
            body {font-size: 16pt; color:#999}
            h1 {font-size: 100pt; text-align: right; color: #161616;
                margin: -50px 0px -100px 0px;}
        </style>
    </head>
    <body>
        <h1>Index</h1>
        <p>This is a sample page with php-template.</p>
    </body>
</html>

web.php

<?php
Route::get('hello', function() {
    // フォルダ名.ファイル名
    return view('hello.index');
});

return view() で返される値は、Response のインスタンスであり、レンダリングされた後の値が返されます。

PHPフレームワーク Laravel入門

PHPフレームワーク Laravel入門

感想

いったんパーフェクトPHPの学習をストップして、Laravelでフレームワークによる開発の学習をやります。何か作りたいサイトがあるわけではありませんが、PHPでアウトプットをしたいとは思います。