validateXxxはリクエストメソッドに関わらず(GETでもPOSTでも)実行される。
なので、フォーム表示とサブミット処理が同じアクションの場合は、validateXxxが、POSTの場合のみvalidationを行い、POSTでない場合は常にtrueを返すようにしなければならない。
「Symfony」カテゴリーアーカイブ
app.ymlはプロジェクトレベルにも置ける
app.ymlはプロジェクトレベルにも置ける。
(アプリケーションレベルのapp.ymlに上書きされる)
アプリケーションを削除する
Removing applications
1. Remove the application directory in apps/ directory.
2. Remove the front controllers in the web/ directory.
3. Remove the functional tests in the test/functional/ directory.
4. Remove the log files in the log/ directory.
There is no automated task for removing an application for now.
sfInflector
キャッシュクリア時にサイトをシャットダウンする
You can shut down the website during the cleaning process with:
$ symfony disable frontend
$ symfony clear cache
$ symfony enable frontend
applicationごとにsessionを分けるには?
Factories
myapp/config/factories.yml
storage: class: sfSessionStorage param: session_name: symfony
session_nameをアプリケーションごとに分ける。
サブドメインでセッションを共有する方法は以下を参照。
サブドメインでセッションを共有する
複数のデータベース接続
複数のデータベース接続は、複数のschema.ymlを使用し、それぞれに別のconnection名をつける。
Extended Schema Syntax - The Definitive Guide to symfony Chapter 8 - Inside The Model Layer
注意点
・複数のschemaを使用する場合は、schema.ymlという名前は使わない
全てにプレフィックスをつける。プレフィックスのないschema.ymlがあると、propel-build-sqlが動作しないようだ。
例:
admin-schema.yml
client-schema.yml
・パッケージを分ける
パッケージ名は、xxx-schema.ymlのconnectionの_attributesに加える。
例:
admin-schema.yml
admin:
_attributes: { noXsd: false, package: lib.model.admin }
client-schema.yml
client:
_attributes: { noXsd: false, package: lib.model.client }
・loadData()には第2引数に接続名を渡す
$data = new sfPropelData();
//$data->setDeleteCurrentData(false);
$data_dir = sfConfig::get('sf_data_dir').DIRECTORY_SEPARATOR.'fixtures'.DIRECTORY_SEPARATOR.'admin';
$data->loadData($data_dir, 'admin');
propelのBaseクラスファイルに詳細なコメントを付加する
config/propel.ini
propel.builder.addComments = true
Applying custom joins using a helper class
Applying custom joins in doSelect* method
ApplyingCustomJoinsInDoSelect - symfony - Trac
Applying custom joins in doSelect* method
http://propel.phpdb.org/docs/user_guide/chapters/FindingObjects.html(Criterionの使い方がある)