symfonyの設定は、YAML形式のファイルで管理されます。YAMLは Yet Anothor Markup Languageの略で、HTMLやXMLのような言語をより分かりやすい形式で定義たもので、項目と設定内容を半角スペースと改行コードのみの羅列で記述します。
※YAMLファイル記述例
all:
//1ページ毎の表示件数
page_limit : 50
//消費税
tax : 0.05
//NoPhoto画像
nophoto_image : /img/nowpri.gif
//会員種別
member_kind_mail : メール会員
member_kind_mailorder : 通販会員
member_kind_card : カード会員
member_kind_retire : 会員退会済み
symfony専用コマンドが用意されており、バージョン管理(アップグレード)やアプリケーションの作成などがコマンドで行えるようになっています。また、モジュールの雛形生成の他、データベースと連携したcrudコマンドにより、データの参照・登録・変更・削除を行う簡単なメンテナンス画面であれば、コマンド1つで簡単に作成できるようになっています。
symfonyでは、O/RマッパーであるPropelを使用しているため、開発者側が意識することなくSQLインジェクションの対策が行われています。また、エスケープ設定を有効にすることにより、クロスサイトスクリプティングを防止することができます。
デバッグモードをONにすることにより、リクエスト・レスポンスの内容やSQL文、実行処理時間やページ容量の他、デバッグに必要な様々な情報を表示することができます。
一般的なテキスト入力フォームやセレクトメニューの他、日付入力やオブジェクトと連携したフォームなどが、タグにより簡単に作成できるようになっています。javascriptやAjaxと連携したよりダイナミックなフォームにも対応しています。
※ヘルパー使用例
テンプレート記述(引数:パラメータ名、Value値、オプション)
<?php echo input_tag('member_id', $strMemberId, array ('size' => 7,)) ?>
→Viwe出力時に以下のように展開される
<input type="text" name="member_id" id="member_id" value="" size="7" />
※value値はactionでセットした値が代入されます
フォームの必須入力チェックや日付チェックなどの基本的なエラーチェックを、YAML形式の設定ファイルを設置することによりコードを書かずに行うことができます。また、コードの記述が必要な複雑なエラーチェックの場合でも、ライブラリディレクトリ配下にクラスファイルを設置することにより、YAML内で設定した処理と並行して行うことが可能になっています。
symfonyはキャッシュ機能が非常に充実したフレームワークです。コンテンツ、SQLクエリ、関数など様々な単位でキャッシュを保存することで、ウェブサイトのスピードアップが可能となっています。設定はYAML形式のファイルで簡単に行うことができ、symfonyコマンドで消去することもできます。