今日もメモをのこそう

あとでみるメモ代わり

PHPフレームワークLaravel入門(第2版)を読みながら 

本を読みながらLaravelの勉強をしてたんですが、以下に突っかかってしまったのでメモ。
流れとしては、リクエストとレスポンスを見てみようって話の中で以下のソースがありました。
※本としては序盤も序盤なので、$responseをコントローラに渡すのおかしくない?というツッコミはなし。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;

class HelloController extends Controller{

    public function index(Request $request,Response $response){
        $html =  <<<EOF
        <html>
            <head>
                <title>Hello/Index</title>
                <style>
                body {font-size:16pt; color:#999;}
                h1 { font-size:120pt; text-align:right; color:#eee;
                    margin:-50px 0px -120px 0px;}
                </style>
            </head>
            <body>
                    <h1>Hello</h1>
                    <h3>Request</h3>
                    <pre>{$request}</pre>
                    <h3>Response</h3>
                    <pre>{$response}</pre>
            </body>
        </html>
EOF;
    
                $response->setContent($html);
        return $response;

    }
}

何に突っかかったかというと

$response->setContent($html);
return $response;

特に説明がなく急にでてきたので、どっから出てきた?という感じでした。
今までretun $htmlみたいにhtmlソースをそのまま返してたのに、??という感じでした。

おそらく意図としては、responseの話が出てきたので使ってみようということだと思います。
正直、今までの流れだったら以下のように書くのが筋としては正しいかなという気もします。

return $html

ただ、であればreturn内容は$responseで返すパターンでした、とか、
今まで通りhtmlで返してもLaravel上では変わりませんよとか、
何かしらの注記をつけてほしかったかなと思いました・・。

本は簡単に読めるのでとっかかりとしては楽なんですが、変なところで引っかかるので一長一短ですね。。
正しい情報をつかみたいのであれば、公式ページが一番かもです。基本的に日本語になってるし。