データベースの変更履歴を記録するsfPropelAuditPlugin « symfonyで開発日記
リリースバージョンはバグがある。
パッチ
#2275 (sfPropelAuditPlugin does not work in production mode) - symfony - Trac
「Symfony」カテゴリーアーカイブ
symfony1.0系でphp5.3でエラー発生
symfony1.0系でphp5.3でエラー発生 - chiruboの日記
symfony framework forum: symfony 1.0 => Snow Leopard - longvarchar
Creoleの問題らしい。
lib/vendor/creole/CreoleTypes.phpで、
TEXTとLONGVARCHARに同じ値(17)が代入されているため、$affixMapと$creoleTypeMapでキーが重複していて、self::LONGVARCHARが捨てられている。(PHP5.3の場合)
そのため、schema.ymlでtypeにLONGVARCHARを指定している場合に、
./symfony propel-build-modelで
Unable to return 'affix' for unknown CreoleType
が発生する。
解決法は、TEXTに使用されていない整数値を割り当てることにより、TEXTとLONGVARCHARの値が重複しないようにする。
lib/vendor/creole/CreoleTypes.php
//const TEXT = 17; const TEXT = 30; //php 5.3.0 fix, using an unused int
その他
Is symfony-1.0 compatible with php-5.3 ? - symfony users | Google グループ
ヘルパー関数をアクション内で使う
ヘルパー関数をアクション内で使う « symfonyで開発日記
action内でhelper関数を使用したい場合は、sfLoader::loadHelpersでヘルパーをロードすればよいが、使用するヘルパーだけでなく、それが依存するヘルパーもsfLoader::loadHelpersで指定する必要がある。
たとえばアクションで、
sfLoader::loadHelpers(array('Url')); echo mail_to('xxx@xxxx.xxx');
とやると、
Fatal error: Call to undefined function _parse_attributes() in /Users/pistolfly/sfprojects/reserve/lib/vendor/symfony/lib/helper/UrlHelper.php on line 312
というエラーになってしまう。
以下のようにすればOK。
sfLoader::loadHelpers(array('Tag', 'Url')); echo mail_to('xxx@xxxx.xxx');
sfPropelPagerのgetNbResultsがおかしい
Y2 BLOG » [symfony]sfPropelPagerのgetNbResultsがおかしい
sfPropelPager使用時の注意点
・setPeerMethodしたら、必ずsetPeerCountMethodする。そうしないと、件数がおかしくなる可能性がある。(セットしない場合のデフォルトがそれぞれ'doSelect'、'doCount'なので。)
・addGroupByColumnしたら、必ずsetDistinctする。
symfonyを使ったサイトリリース時のチェック項目
symfonyを使ったサイトリリース時のチェック項目 « symfonyで開発日記
symfonyを使ったサイトをリリースするときにチェックするべき項目がまとめてある。
schema.ymlでLONGTEXTを指定したい場合はclobを指定する
symfonyのschema.ymlで、MySQLのLONGTEXTを指定したい場合は、clobを指定する。
longvarcharだと、TEXTになる。
CriteriaでIN(NOT IN)を使う場合の指定方法
Symfony Tips(Propel Tips):CriteriaでIN(NOT IN)を使う場合の指定方法
Criteriaのaddメソッドの第2引数に配列を指定すると、自動的に展開してくれる。
例:
$c->add(Table1Peer::COLUMN1, array('value1', 'value2'), Criteria::IN);
symfony1.1のメール送信方法
symfony1.1 and sfMail (or mail in generell) - symfony developers | Google グループ
symfony1.1のメール送信方法。
propelの日付と時刻のデフォルト値が1.0.9ではロケールに従った出力に変更された。が1.0.10で元に戻った。
symfony propelでの日付のデフォルト値 : アシアルブログ
symfony 1.0.9 で、日付型(date)と時刻型(time)propel generator で生成されるコードが以下のように変わった。(datetimeとtimestampは変更なし)
が、1.0.10で元に戻った。
Changeset 6337 - symfony - Trac
symfonyでのpropel generatorのデフォルトの設定は、
/lib/vendor/propel-generator/default.properties
だということが分かった。
1.0.8
public function getDate($format = 'Y-m-d') { ... } public function getTime($format = 'H:i:s') { ... }
1.0.9
public function getDate($format = '%x') { ... } public function getTime($format = '%X') { ... }
propel.ini に以下を追加してモデルをリビルドすると、1.0.9でも1.0.8までと同じコードが生成されるようになる。
propel.defaultDateFormat = Y-m-d propel.defaultTimeFormat = H:i:s
が、1.0.10で元に戻ったので、1.0.10にアップグレードしてモデルをリビルドすれば上記対応は不要になる。。