Symfony
2021/3/17現在はv5.2.5
install
$ composer create-project symfony/skeleton trial-symfony
project作成
symfonyをlocalにinstallしないといけない
pathを通すなどをする
$ symfony server:start
起動
Symafonyの微妙な点
めちゃくちゃあるがmrsekut.icon
CLIからControllerやEntiry等を作成したりできる
$ php bin/console list make
利用可能なコマンド一覧を表示
$ php bin/console make:controller HogeController
HogeControllerを作成
Template
1ページまるごと返すことが前提?
controllerのactionのアノテーションで指定するのと、this->renderで指定するやつの違いは何?
そのactionを別のactionで呼び出す時に返り値がresponseだけで扱いやすい
@Templateを書くとactionの返り値はresponseだけが明示されることになる
twigを返していることがわかりにくい
ただPHPはもはやその次元にいないのでこの程度の「わかりにくさ」は無視できる気がするなmrsekut.icon
どこに書いているのか知らんけど@Templateはアンチパターンらしいな
Serializer Component
Service Class
Response Class
Monolog
Handler
ログの出力する機能です。
日本語おかしくない??mrsekut.icon
例
普通にファイルに出力したければStreamHandler
メールにログを出力したければSwiftMailerHandler
Formatter
Handlerが出力する際のフォーマット設定機能
例
通常の行formatで出力したいときはLineFormatter
JSON形式で出力したい場合はJsonFormatter
Processor
メッセージに付加情報を追加する
通常は「message」を指定してログ出力することになりますが、
セッショントークンなど付加情報を自動で出力したい場合、Processor機能を利用することで
拡張領域の「extra」に セッショントークンを設定してFormatterで出力します。
sufixに~Processorとついているclassがこれなのか #?? SensioGeneratorBundle
CLIでControllerを作るやつ
廃止されている
$ php app/console
代わりにphp bin/consoleを使う
v4系の本
symfonyやる時に毎回やってること
zennの本