Symfonyチュートリアル:(2回目)コントローラーの作成

この記事は約4分で読めます。

2回目なので、さくさく進んだところも多かったです。

ローカルのWebサーバーの起動

symfony CLIコマンドは、開発用に最適化されたWebサーバーとしても機能する。
Symfonyとうまく連携してくれるが、開発用としての使用のみで、決して本番環境では使用してはいけない(公式サイトより)。

プロジェクトのディレクトリからバックグラウンドでWebサーバを動かしてみる。

サーバは 8000 番からはじまる使用可能なポートで立ち上がります。ショートカットを使用して、 CLI からブラウザでwebサイトを開いてみましょう:

ゼロの状態からプロダクションまでやってみよう (Symfony 5.4 Docs)

無事ページが表示されました。

スクリーンの一番下にデバッグツールバーが表示されている。これで正しい情報を見ることができる。

小さな感嘆符(!)をクリックすると、Symfony profiler 内のログから “実際の” 例外のメッセージを見ることができます。スタックトレースを見たいときは、左のメニューの “Exception” リンクをクリックしてください。

トラブルシューティング (Symfony 5.4 Docs)

コードに問題があるときは、問題が起きている箇所を調べることができる「Exceptions」ページが表示される。

【Tips】
トラブルシューティングの際は、「symfony server:log;」コマンドを使うこと。デバッグ時にログはとても役に立つ。このコマンドは、WebサーバーやPHPやアプリケーションのログをtailしてくれる。

本番のデバッグ

本番サーバーのデバッグは、より複雑で「Symfony profiler」は使えないし、ログの情報も冗長にはしていないそう。でも、ログのtailは可能とのこと。

また、Webコンテナ上にSSHで接続することも可能だそうだ。

コントローラーの生成

make:controller コマンドで最初の コントローラー を作成しましょう:

このコマンドは src/Controller ディレクトリ以下に ConferenceController クラスを作成します。生成されたクラスはちゃんと動くようなボイラープレートが既に入っています:

コントローラーを作成する (Symfony 5.4 Docs)

========【以下、引用】========

src/Controller/ConferenceController.php

#[Route('/conference', name: 'conference')] アトリビュートが、 ConferenceController の index() メソッドをコントローラにしています(設定は、コードに隣接しています)。

/conference をブラウザで開くと、このコントローラが実行され、レスポンスが返されます。

ホームページにマッチするようにルートを微調整します:

コード内でホームページを参照したいときは、ルートの 名前 が便利です。 / パスをハードコードせずに、 ルート名を使いましょう。

デフォルトで表示されるページの代わりに、シンプルな HTML のページを返すようにしましょう:

ブラウザを更新します:

========【引用ここまで(引用元:コントローラーを作成する (Symfony 5.4 Docs))】========

更新したら、以下の画面が表示されました!ここまでOKです!

Controller

Conttollerの主な役割は、リクエストに対応するHTTPレスポンスを返すこと。

タイトルとURLをコピーしました