ブラウザと携帯のテンプレート切り替え
・filterで、UserAgent等から判断用の各種属性をsetAttributeでセットしておく。
・各モジュールのアクションの、preExecute()メソッド内で、
$this->setLayout('テンプレート名');
で切り替える。
http://www.symfony-project.com/book/trunk/controller
action以外のクラスからsfUserなどのcontextのオブジェクトを取得する
action以外のクラスからsfUserなどのcontextのオブジェクトを取得する
例:
sfContext::getInstance()->getUser()
setAttributeでnamespaceを使う
$this->getUser()->setAttribute('subscriber_id', $user->getId(), 'subscriber');
$this->getUser()->setAttribute('nickname', $user->getNickname(), 'subscriber');
// namespaceごと削除できる。
$this->getUser()->getAttributeHolder()->removeNamespace('subscriber');
symfonyコマンド(pake)実行にはプロジェクトルートディレクトリに、SYMFONYという名前の空ファイルが必要
symfonyコマンド(pake)実行にはプロジェクトルートディレクトリに、SYMFONYという名前の空ファイルが必要。
symfony/data/bin/pakefile.phpでチェックしている。
Windowsでrsync
cwRsyncをインストールして、binディレクトリにパスを通す。
(うまくいかない場合は、pathの一番最初に追加する。)
innoDBを使う
To use the InnoDB engine, one line has to be added to the propel.ini file of the askeet/config/ directory:
propel.mysql.tableType = InnoDB
http://www.symfony-project.com/askeet/2
autoloadされるクラスのキャッシュ
開発環境では、設定は毎回再読み込みされるが、autoloadされるクラスは再読み込みされないので、libのクラスファイルを追加変更した場合は、clear-cacheする必要がある。
getterで取得した日付のフォーマット
getterで取得した日付のフォーマット
strftime('%Y-%m-%dT%H:%M:%SZ', $question->getCreatedAt('U'))
Form Validationの設定ファイルの書き方の注意
methods:
post: [name, email]
※角括弧([])内にパラメータ名をリストする!
xdebugのインストール
php.iniにzend_extension_tsを追加。
例:
zend_extension_ts="d:/php5/ext/php_xdebug.dll"
※ symfonyのドキュメントでは
extension=php_xdebug.dll
とあるが、これだとsymfonyコマンドで以下のワーニングが出る。
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
※ zend optimizorとの互換性に注意
http://www.symfony-project.com/book/trunk/debug