概要
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でダウンロードされます。
symfony.exeを任意のフォルダに配置し、環境変数のPathに追加します。
プロジェクト作成
コードを配置したいフォルダで次のコマンドを実行します。
symfony new my_project_directory --version="6.0.*" --webapp
my_project_directory は作りたいプロジェクトのフォルダ名にします。
PHPビルトインサーバー起動(Symfony CLI経由)
以下コマンドを実行することで、開発用Webサーバーを起動出来ます。
symfony server:start
終了するときはctrl+cを入力します。
表示されているURLをブラウザで開くと、SymfonyのWelcomeページが表示されます。
https://127.0.0.1:8000/
(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
公式ドキュメント
必要に応じて、画面左上のVersionを変更して御覧ください。
余談
symfony6系の日本語記事が少なく、業務で困ったため自分で書いてみることにしました。
(古いバージョンの記事や、Laravel9のPHP対応バージョンがSymfonyの影響で……みたいな記事がヒットします。)
Dockerでの環境構築や、基本的なWebシステムの機能を一通り記事にしていければと思います。