環境構築からWEBアプリ開発・スマホアプリ開発まで。ときには動画制作やゲームも。

supilog
すぴろぐ

HelloWorldとechoしてもPHPと友達になれなかったから、フレームワークでやってみるMVC(3)Symfony

大意は初回書いたので長々とは書かないが、せっかくなのでControllerからViewへの連携や、ルーティングにも触れながらHelloWorldをやって、やや骨太のHelloWorldになってもらおうじゃないかということだ。

(単純にフレームワークに触れてみたいだけだったりするのは内緒)

Symfony

来ましたかSymfony。お久しぶりです。随分以前にお仕事でお世話になったことが。当時欲しい状況がなかなか見つからず苦労した経験があった。今は公式のドキュメントが当時とダンチ。ありがたや〜。

プロジェクト作成については、出来ているものとします。

config/routes.yaml

ルーティングの設定。/のアクセスでHelloControllerのindexが呼ばれるようにします。

index:
    path: /
    controller: App\Controller\HelloController::index

src/Controller/HelloController.php

<?php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;

class HelloController extends AbstractController
{
    public function index(): Response
    {
        $message = 'HelloWorld!! : Symfony';
        $description = '- 本当に私はHelloWorldしたいのか -';

        return $this->render('hello.html.twig', [
            'message' => $message,
            'description' => $description,
        ]);
    }
}

templates/hello.html.twig

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>HelloWorld! - Symfony</title>
    </head>
    <body>
        <h1>{{ message }}</h1>
        <div>{{ description }}</div>
    </body>
</html>

毎回Viewの書き方がだったので、今回はbodyタグ程度まで書きました(ぇ

起動

Symfony CLIは別途インストール済みだったので、以下のコマンドでローカルWEBサーバーが簡易的に立ち上がります。symfony CLI

symfony server:start

ブラウザ確認

無事にHelloWorld出来ました。ふぅ〜。

さいごに

今回はやりませんでしたが、アノテーションでのルーティングも出来るみたいだ。(https://symfony.com/doc/current/routing.html#creating-routes-as-attributes-or-annotations)

個人的に10年ぶりくらいのSymfonyとの触れ合いだった。ドキュメントがあってひと安心。Symfony CLIでローカルでSSL確認できるのも良いですな。

symfony server:ca:install

下記を実行してから、ローカルWEBサーバーを起動すると、簡単にhttps接続に様変わり。

ドキュメントルートの指定なんかも地味に便利かも。

symfony server:start --document-root=public

それでは。