SymfonyのController
SymfonyのController
RoutingやControllerとしての責務を兼ねている
わけのわからんトリッキーな仕様が多い
SymfonyのRouting
docs
Action
Routeにアクセスした時に返すmethodのことをActionと呼ぶ
命名
suffixをActionにする
ただ、このmethodは具体的にどこからも参照されない
だから適当に名前の変更をしてもどこにも影響しない
annotationのRouteしか見てない
人間の読み手に伝えるためだけのラベルというイメージ
引数
順序は関係ない
型だけで判断している ref
以下はどちらも同じ挙動になる
code:php
function detail(Request $request, RouterInterface $router) {..}
code:php
function detail( RouterInterface $hogehoge, Request $r) {..}
ムズすぎmrsekut.icon
引数の型指定でService ContainerをDIする ref
action単位でDI的なことを自動でやるらしい
useしてたらなんでもいいのか
serviceとか関係なく
例
SymfonyのRequestクラス
Query
ParamConverter
上手く使わないとめちゃくちゃゴミになりそうだなmrsekut.icon
Responseの形式が多すぎる
SymfonyのControllerでのResponseの返し方
継承して作る
2種類ある
Controller
https://github.com/symfony/symfony/blob/3.4/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php
AbstractController
https://github.com/symfony/symfony/blob/3.4/src/Symfony/Bundle/FrameworkBundle/Controller/AbstractController.php
違い
https://symfony.com/doc/3.4/controller.html#:~:text=learn%20about%20next.-,Tip,-You%20can%20extend
よくわからん
#??
requirementsってなに?
request->query->get('hoge')
もしくはcontrollerの引数から取得する?
url内のparmを取得する
それがactionの引数になる?
ParamConverterってなに
paramからなんかのobjectに紐付けて引数にする?
https://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/converters.html
renrerってなに
https://symfony.com/doc/3.4/controller.html#rendering-templates
Request
SymfonyのRequestクラス
Session
https://symfony.com/doc/3.4/controller.html#managing-the-session
Routing Parameterってなに #??
docsで急に出てきた
https://symfony.com/doc/3.4/routing.html#special-routing-parameters
_controller
_format
_fragment
_locale
Controllerの引数にこれを書くと、これになるのか #??
意味がわからんmrsekut.icon
https://hanahirodev.hatenablog.com/entry/20161101/1478005770