こんにちは、オマタです。
4月に入社したばかりでここに書ける小ネタがないのですが、
symfonyを使い始めてみて便利だなと思ったことを書いてみたいと思います。
jobeetが用意されているところがすごい
symfony初心者は、jobeetと言われるチュートリアルを参照しつつ、
説明の通りに自分の環境で動かしながら使い方に慣れていくのが一般的です。
このjobeetがとてもよく出来ていて、これを一通りこなすだけでインストールから
エンジニア求人サイトの正しい作り方までを勉強することができます。
途中、日本語訳の説明文に間違いや分かり辛いところがあったりしますが、
そのときは個人blogに書かれているjobeet正誤情報が助けてくれます。
ちなみにウノウではjobeetの14日目までが習得推奨となっています。
jobeetへのリンク
symfonyコマンドがすごい
symfonyコマンドを使ってプロジェクトの作成、モジュールの作成、
modelやformの生成の他にDBのスキーマ構築、fixtures.ymlの生成、
バージョンやプラグインの確認など様々なことが行えます。
CakePHPのbakeコマンドもお茶目で便利で素敵と思ったものでしたが、
symfonyコマンドの便利さをしみじみ感じている今日この頃です。
デバッグツールバーがすごい
symfonyのデバッグツールバーはとっても便利です。
パラメータの中身やactionからviewへ渡すオブジェクトの中身が閲覧できる他、
実行速度やSQLクエリのログなども見れます。
そのツールバーが画面の右上に常駐していて、見たい時に開いて見ることができます。
エラー時にはログやstack traceを見れば何処でエラーが起こったかを特定できます。
ルーティングが便利
routing.ymlで各ページのURLの命名規則やパラメータの有無、
リクエストの種類(GET/POST)など設定することができ、
条件に合わないURLがリクエストされた場合にはエラーを表示させることができます。
さらにはsfPropelRouteクラスを使うことで、指定クラスのオブジェクトを
受け取ることができます。
テンプレート内でURLを記述する場合には、
<?php echo url_for('ルート名') ?>を使います。
後からURLの規則を変えたいときでも、ルート名で呼び出しておけば
routing.ymlの設定を変えるだけでいいので便利です。
フィルターが便利
アプリケーションディレクトリ内のconfig/security.ymlの設定を
is_secure: trueにすると、どのページににアクセスする際にも
filters.ymlで設定されているfilterクラスを通ることになり、
たとえばmyAuthenticationFilterで認証が通らなかった場合には
loginモジュールに飛ばす仕組みになっています
(どのモジュールに飛ばすかの設定は変えられます)
その他、InputFilterやOutpurFileterを追加することで入出力時に
フィルターをかけることができます。
filterを通したくないモジュール(errorモジュールなど)の場合には、
モジュールのディレクトリ内にconf/security.ymlを作成し、
下記のように設定するだけでスキップされます。
all: is_secure: false
以上がsymfonyを使ってみた所感になります。
これからsymfonyを使ってみようと考えている方にとって、
少しでもこの情報がお役に立てれば幸いです。