Symfonyに挑戦06「設定ファイル」

第5章 - symfonyを設定するをやってみる。
アプリケーション毎やモジュール毎にいろいろと設定できるみたいだ。設定ファイルはYAMLという書式で書くらしい。

設定ファイルの場所

設定ファイルを格納する場所はプロジェクト毎に下記の3つ。

  • myson/config/

    プロジェクト全体のグローバル設定ファイル格納場所
  • myson/apps/(アプリケーション名)/config/

    アプリケーション毎のローカル設定ファイル格納場所
  • myson/aaps/(アプリケーション名)/modules/(モジュール名)/config/

    モジュール毎のローカル設定ファイル格納場所

プロジェクト設定ファイルの種類

myson/config/内の設定ファイル

  • ProjectConfiguration.class.php

    フレームワーク本体へのパスとか記述。高度。
  • databases.yml

    データベースへのアクセスと接続の設定を定義する
  • properties.ini

    プロジェクト名と異なるサーバのための接続設定など
  • rsync_exclude.txt

    プロジェクトファイルを他の場所のファイルと同期するときに同期したくないファイルを設定するファイル
  • schema.yml

    Propelでのデータアクセス用設定ファイル。
  • propel.ini

    Propelでのデータアクセス用設定ファイル。自動的に生成されるので触ることはない。
  • vhost.sample

    Apacheのバーチャルホスト設定のサンプル。

アプリケーション設定ファイルの種類

myson/apps/(アプリケーション名)/config/内の設定ファイル

  • app.yml

    アプリケーション固有の設定
  • frontendConfiguration.class.php

    アプリケーション固有の定数をカスタマイズ
  • factories.yml

    クラス定義
  • filters.yml

    フィルタ定義
  • routing.yml

    ルーティング(URLの変換)ルール
  • settings.yml

    アプリケーションの主要な設定。これがメイン?
  • view.yml

    HTMLのヘッダ部分に記述するmetaとかを設定するファイル
  • cache.yml

    キャッシュの設定
  • security.yml

    アクセス制限の設定?

モジュール設定ファイルの種類

デフォルトではconfigディレクトリ自体作られていないので、必要な場合にディレクトリとファイルを自分で作って入れるようだ。

  • generator.yml

    データベースのなにかの設定
  • module.yml

    モジュール固有のカスタム設定
  • security.yml

    アクションに対するアクセス制限の設定
  • view.yml

    HTMLのヘッダ部分に記述するmetaとかを設定するファイル。アプリケーションのview.ymlを上書きできる。

設定ファイル(YAML)の書き方注意事項

コメントアウトは頭に「#」
・インデントにタブをつかってはダメ。半角スペースで。
・同じグループは同じインデント数で。
・文字列に特別な文字を含む場合は「''」シングルクォートで囲む
・文字列にシングルクオートを含む場合はそのシングルクオートを二重にする。
・改行の入った文字列を書く場合は頭に「|」を入れる。
・改行を無視してほしい場合は頭に「>」を入れる。
・配列は「[ 1, 2, 3 ]」か、

- 1
- 2
- 3

連想配列は「{ A:1, B:2, C:3 }」か、

A: 1
B: 2
C: 3

・理論値は正の値はonか1かtrueで、負の値はoffか0かfalse
・コロンやカンマの後には半角スペースを入れる。
・文字列にYAMLで予約されている文字(コロンやカンマ)を入れるときはシングルクオートで囲む

Q. ファイルが多すぎるでしょうか?

A. 多すぎます。