.
├── bin
│ └── console
├── composer.json // ここからプロジェクトが始まる
アプリに必要なすべてのサードパーティライブラリがリストされています。
├── composer.lock
├── config // configファイルが格納される
│ ├── bootstrap.php
│ ├── bundles.php
│ ├── packages
│ ├── routes
│ ├── routes.yaml
│ └── services.yaml
├── public // document root(front controllerと言われ、webサーバーによって実行されるファイル
│ └── index.php
├── src // PHP コードが格納される
│ ├── Controller
│ └── Kernel.php
├── symfony.lock
├── var
│ ├── cache
│ └── log
└── vendor
├── autoload.php
├── bin
├── composer
├── psr
└── symfony
webFrameworkにある大切な2つの要素、routeとcontroller。
- route
- ページのURLを定義する。
- controller
- HTMLやJSONのように、そのページを作成するためのPHPコードを記述する場所。
コントローラーを使ってみる
routes.yamlを編集
初期からわかりやすく書かれています。
routes.yaml
#index:
# path: /
# controller: App\Controller\DefaultController::index
下記に書き換え
routes.yaml
index:
path: /
controller: App\Controller\QuestionController::homepage
コントローラーを作成
Controllerの中に新しいファイルを作ります。これはActionと言われるファイルです。ページを構築するための作業をさせることができます。データベースのクエリの作成、APIとの通信等々、、。
srcディレクトリに作成するクラスには、namespaceが必須です。
namespaceはApp\以下に作成する必要があります。
use Symfony\Component\HttpFoundation\Response;も必須です。
touch src/Controller/QuestionController.php
/src/Controller/QuestionController.php
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
class QuestionController
{
public function homepage()
{
return new Response('Hello World');
}
}
これでサーバーを立ち上げてページを表示してみると、Hello Worldと表示されているはずです。
参考
Route, Controllers & Responses! > Charming Development in Symfony 5 | SymfonyCasts
https://symfonycasts.com/screencast/symfony/route-controller#play