2009-01-01から1年間の記事一覧

symfonyのキャッシュの挙動まとめ

symfonyのキャッシュについて、設定値の組み合わせによって変わる挙動を調べてみました。 はじめに・キャッシュのいろいろ symfonyで扱うキャッシュにはいくつかの種類があります。 アクションキャッシュ サーバー側。アクションの実行結果がキャッシュされ…

Fixtureを記述し始めるのが面倒なのでテンプレートを出力するタスクを作った

symfonyにはRuby on Rails由来のfixturesというサンプルデータを登録する仕組みがあります。The Definitive Guide to Symfony 16章 http://www.symfony-project.org/book/1_2/16-Application-Management-Tools#chapter_16_sub_fixture_file_syntax →「Fixtur…

dir関数の詳細を調べてみた

dir関数の引数で指定したディレクトリに読み取り権限がなかった場合、falseが返ってくるのですが、この挙動についてPHPのソースを確認してみました。該当するのは、/ext/standard/dir.cです。 (PHP-5.2.9のソースで確認)203行目から、以下のような部分があ…

ExtendedFileManager使用時に読み取り権限のないディレクトリがあるとFatal Errorになる件

とあるシステムのコンテンツ管理画面にWYSIWYGエディタのxinhaを使っており、コンテンツ(PDFやWordファイルなど)のアップロード用にExtendedFileManagerプラグインを有効にしています。 このプラグインで、突然Fatal Errorが出るようになったので調べたと…

symfonyで画像認証を使う(reCAPTCHA)

id:brtRiverさんのエントリ「http://d.hatena.ne.jp/brtRiver/20090412/1239563001」を見て、そういえばプラグインでreCAPTCHAのやつがあった気がしたので、試しに使って見ました。reCAPTCHAは、sfFormExtraPluginの一部として提供されているウィジェット/バ…

複合ウィジェットの値の取得方法

symfonyのsfFormでは、「姓・名」という2つの入力欄を1つのウィジェットとしてまとめて扱うことができます。 このような場合、特定のウィジェットをsfWidgetFormSchemaでまとめたものを1つのウィジェットとして扱います。 同じように、バリデータもsfVali…

AdminGeneratorで生成した一覧画面のフィルタでプルダウンを使う

AdminGeneratorで管理画面を生成すると、スキーマで外部キーを定義しているフィールドは自動的にプルダウンが生成されますが、特にマスターテーブルを用意しないようなコード値を持つフィールドは、「テキスト入力+is empty」入力欄が生成されてしまいます…

sfFormFilterPropel::addNumberCriteria(メモ)

SynfonyのAdminGeneratorで管理画面を生成した時に、リストのフィルタ(検索)クエリの生成に使われる部分http://trac.symfony-project.org/browser/branches/1.2/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php#L187 getCo…

symfony1.2のAdminGeneratorでid属性を書き換える場合

通常のフォーム(sfForm)で id 属性を変更する場合は、sfForm 継承クラスの setup メソッド内で、ウィジェットのコンストラクタに $attributes パラメータとして id 属性を渡します。 しかし、AdminGenerator で生成したフォームの場合、ウィジェットのコン…

アクションキャッシュを明示的に削除する方法

アクションキャッシュを使用するとアクションのレンダリング結果がキャッシュされるようになりますが、このキャッシュは内部的なデータの更新などには全く依存せず、単に作成された時刻から●秒、という生存期間でキャッシュされます。 しかし、データの更新…

アクションキャッシュを使用する場合にテンプレートではなくアクションから直接出力しているとキャッシュされずにページが真っ白に

まあ当然といえば当然なのですが・・・ cache.yml にてアクションの結果をキャッシュするように設定した場合、厳密には「アクションの処理結果としてレンダリングされたテンプレート」がキャッシュされ、アクションの処理がスキップされるようになります。例…

404ページをカスタマイズする場合の注意

symfonyで404ページをカスタマイズする場合、setting.yml 内の以下の設定を有効にして該当するアクションの出力をカスタマイズします。 #all: # .actions: # error_404_module: default # To be called when a 404 error is raised # error_404_action: erro…

PHP Universal Feed Generatorでタイトルの文字化け対策

http://www.ajaxray.com/blog/2008/03/08/php-universal-feed-generator-supports-rss-10-rss-20-and-atom/ PHPでATOM、RSS1/2フォーマットのフィードが超簡単に吐き出せる「FeedWriter.php」:phpspot開発日誌 PHPSPOT 開発日誌で紹介されていた RSS 出力ラ…

Propelのデータ型

symfony の schema.yml 内に記述できるデータ型は Propel に定義されているものに限られます。 Propel で使えるデータ型は、以下のページの定数一覧で参照できます。http://propel.phpdb.org/docs/api/1.3/generator/propel-engine-database-model/PropelTyp…

symfony1.2では、standard_helpers設定はデフォルトで無効

setting.yml の standard_helpers 設定を有効にするには、sf_compat_10 モードを有効にしないといけない仕様のようです。→http://trac.symfony-project.org/ticket/5259 compat_10: on standard_helpers: [Partial, Cache, Form]