2
1

More than 1 year has passed since last update.

Symfony(6.0) で Hello World!

Posted at

概要

SymfonyのWebアプリでいわゆるHello Worldを行います。
SymfonyはPHPのMVCフレームワークの1つとなります。

Symfony6.0を対象としていますが、現行バージョンである6.1(PHP8.1以上)でも同様の操作で構築可能です。

環境情報

Windows10
PHP8.0
Composer
Symfony CLI

(本記事ではDockerを扱いません。ローカルにインストールされているPHPを利用しております。)

Symfony CLIのダウンロード

Windows > Binaries > amd64(または386)をクリックすると、zipでダウンロードされます。
image.png

symfony.exeを任意のフォルダに配置し、環境変数のPathに追加します。

image.png

プロジェクト作成

コードを配置したいフォルダで次のコマンドを実行します。

symfony new my_project_directory --version="6.0.*" --webapp

my_project_directory は作りたいプロジェクトのフォルダ名にします。

構築後のディレクトリ構成

PHPビルトインサーバー起動(Symfony CLI経由)

以下コマンドを実行することで、開発用Webサーバーを起動出来ます。

symfony server:start

image.png

終了するときはctrl+cを入力します。

表示されているURLをブラウザで開くと、SymfonyのWelcomeページが表示されます。
https://127.0.0.1:8000/

image.png

(Welcomeページの内容はtemplates/base.html.twigとなります。)

ページ追加

Controller

src/Controller以下にHelloController.phpを作成します。

<?php
// src/Controller/HelloController.php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class HelloController extends AbstractController
{
    // ルーティングを定義しています。
    #[Route('/hello')]
    public function index(): Response
    {
        return $this->render("hello/index.html.twig", 
            ["name" => "Alice"]);
    }
}

View

templates以下にhello/index.html.twigを作成します。

{# templates/hello/index.html.twig #}
<h1>Hello, {{ name }} !</h1>

表示

/helloをブラウザで開くと、Controllerで渡した値(Alice)が
Viewに適用されて表示されます。
https://127.0.0.1:8000/hello

image.png

公式ドキュメント

必要に応じて、画面左上のVersionを変更して御覧ください。
image.png

余談

symfony6系の日本語記事が少なく、業務で困ったため自分で書いてみることにしました。
(古いバージョンの記事や、Laravel9のPHP対応バージョンがSymfonyの影響で……みたいな記事がヒットします。)
Dockerでの環境構築や、基本的なWebシステムの機能を一通り記事にしていければと思います。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1