symfony

sfStringValidatorで大量の文字列を処理するとSegmentation FaultでApacheが落ちる

ぼくの環境では8000文字程度で発生しました。 下記のエラーチケットがあがってますが、まだ対応中のようです。 #1634 (sfStringValidator broken when String is longer then 5000 and a few characters) - symfony - Trac http://trac.symfony-project.com/…

i18nとページキャッシュ

symfonyの国際化機能を使うと、セッションユーザーオブジェクト(sfUser)のculture属性を元に、UI用テキスト・リソースの切り替え*1や、国際化されたオブジェクトの振る舞いの変更*2を自動的に行うことができる。 これは大変ありがたい機能なんだけど、素のシ…

symfony でモジュールを一時的に利用不可にする方法

モジュール設定ファイル*1で下記の様に指定します。 all: enabled: off disabled だとばっかり思って、一生懸命検索してたら enabled: off でしたか。 ちなみに、このモジュールが呼び出された場合、アプリケーションの設定ファイル(settings.yml)の module_…

'MATCH (xxx) AGAINST(xxx)' を実行するいい方法はないもんか

symfony + MySQL に検索エンジンとして Senna を組み合わせている場合、Propel の Criteria は MySQL 固有の'MATCH (xx) AGAINST ('query')' に対応していないので、若干面倒なことになる。Criteria::CUSTOM を使うと、独自の SQL 文を差し込むこともできる…

Propel オブジェクトから多対多の関連オブジェクトにアクセス

Propel が生成するオブジェクトは、foreign-key で関連づけられたオブジェクト(のリスト)を取得するためのメソッドを自動的に提供してくれます。しかし、多対多の関係に有る場合は中間オブジェクト(下記におけるTagged)しか取得できないので、中間テーブルか…

symfony 1.0 のセキュリティ機構に抜け道が見つかる

sfAction の is_secure() と getCredential() に問題があり、URL 中のアクション指定時に大文字を混ぜると、セキュリティーチェックがスルーされてしまいます。(2006/3/20) この問題へのフィックスを含む symfony 1.0.1 がリリースされています。 ぷぎがぽぎ…

Propel の Criteria を克服する

symfony では、標準の ORM として Propel が組み込まれています。 Propel でデータベースからデータを取り出す際には Criteria を使います。 $c = new Criteria; $c->add(BlogPeer::AUTHOR_ID, 1); // ユーザーID=1 の人が書いたブログ $blog = BlogPeer::do…