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
それでは。