symfony
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…
id:brtRiverさんのエントリ「http://d.hatena.ne.jp/brtRiver/20090412/1239563001」を見て、そういえばプラグインでreCAPTCHAのやつがあった気がしたので、試しに使って見ました。reCAPTCHAは、sfFormExtraPluginの一部として提供されているウィジェット/バ…
AdminGeneratorで管理画面を生成すると、スキーマで外部キーを定義しているフィールドは自動的にプルダウンが生成されますが、特にマスターテーブルを用意しないようなコード値を持つフィールドは、「テキスト入力+is empty」入力欄が生成されてしまいます…
SynfonyのAdminGeneratorで管理画面を生成した時に、リストのフィルタ(検索)クエリの生成に使われる部分http://trac.symfony-project.org/browser/branches/1.2/lib/plugins/sfPropelPlugin/lib/form/sfFormFilterPropel.class.php#L187 getCo…
通常のフォーム(sfForm)で id 属性を変更する場合は、sfForm 継承クラスの setup メソッド内で、ウィジェットのコンストラクタに $attributes パラメータとして id 属性を渡します。 しかし、AdminGenerator で生成したフォームの場合、ウィジェットのコン…
アクションキャッシュを使用するとアクションのレンダリング結果がキャッシュされるようになりますが、このキャッシュは内部的なデータの更新などには全く依存せず、単に作成された時刻から●秒、という生存期間でキャッシュされます。 しかし、データの更新…
まあ当然といえば当然なのですが・・・ cache.yml にてアクションの結果をキャッシュするように設定した場合、厳密には「アクションの処理結果としてレンダリングされたテンプレート」がキャッシュされ、アクションの処理がスキップされるようになります。例…
symfonyで404ページをカスタマイズする場合、setting.yml 内の以下の設定を有効にして該当するアクションの出力をカスタマイズします。 #all: # .actions: # error_404_module: default # To be called when a 404 error is raised # error_404_action: erro…
prod モードではデフォルトで、ルーティングの設定のみでなく、設定から生成される sfRoute クラスでコンパイルを行った状態のインスタンスがシリアライズされ、キャッシュされます。 したがって、prod モードでは実行時のコンパイル処理のオーバーヘッドは…
symfonyでのルーティング処理がどのように行われているのか、ソースを読んでみました。ルーティングの設定は、routing.yml に記述します。 routing.yml に記述した設定は、sfRoutingConfigHandler によってパースされ、キャッシュファイルとして保存されます…
sfValidatorPassは「何もしないバリデータ」です。入力値の検証や変換は一切行わず、「その名前のパラメータを受け取る」ということを示すために存在しています。※symfonyのフォームフレームワークで入力値のバリデーションを行う場合、すべてのフィールドに…
おそらく日本のsymfonyユーザーなら誰でもお世話になっているであろう、Masakiさんが運営するsymfonyドキュメントの翻訳プロジェクトで、少しお手伝いを始めました。 ドキュメントの翻訳 翻訳プロジェクトのGoogle Codeサイト 翻訳プロジェクトのGoogleグル…
/lib/filter/sfCacheFilter.class.php の119行目あたり cacheManager->getClientLifeTime($uri, 'page')) 118 { 119 $this->response->setHttpHeader('Last-Modified', $this->response->getDate(time()), false); 120 $this->response->setHttpHeader('Expi…
の方法がbrtRiverさんのところで公開されていたのでメモ。→http://d.hatena.ne.jp/brtRiver/20081128/1227824656bindした後で、sfWidgetSchema内の要素を全部sfWidgetFormInputHiddenに置き換える感じです。 こういう方法はアリですねぇ。 私はこれまでに自…
sfAction::forwardIf($condition, $module, $action) sfAction::forwardUnless($condition, $module, $action) sfAction::redirectIf($condition, $url, $statusCode = 302) sfAction::redirectUnless($condition, $url, $statusCode = 302) sfAction::forwa…
sfWidget系フォームの説明symfony 1.x legacy websiteチャプターが飛んでいるのはまだ執筆中の部分が多いってことなんでしょうかねぇ。 symfony 1.x legacy website symfony 1.x legacy website symfony 1.x legacy website symfony 1.x legacy website symf…
いつも方法を忘れてしまうのでメモ・・symfony 1.x legacy website svnチェックアウト プロジェクト用ディレクトリを作成 /data/bin/symfony を使ってプロジェクト初期化 # プロジェクト用ディレクトリを作成 $ mkdir prj # プロジェクト用ディレクトリへ移…
$ symfony -T
symfony1.2(http://trac.symfony-project.org/changeset/13196/branches/1.2)で、/cache/frontend/dev/config 配下に書き出されるファイルのパーミッションが 0644 になっているので、後からコマンドラインで symfony propel:build-all をやると、ファイルに…
プロジェクトディレクトリ配化のconfig/ProjectConfiguration.class.php内で、sfCoreAutoload.class.phpを絶対パスでrequire_onceしているので、必要であればこれを書きかえる。
プロジェクトディレクトリ配下web/.htaccess内の「RewriteBase」は、環境のディレクトリ構成に合わせて修正する。 ドキュメントルートになっている場合は「/」のまま。
ちょっとどっぷりとsymfonyに入り込んでみようということで、まずは公式系のRSSを手当たり次第に購読。こちらのページの右側の「RSS Feeds」にあります。 symfony 1.x legacy website 公式ブログ http://www.symfony-project.org/forum/rdf.php?mode=m&l=1&n…
actionクラス内 $this->getRequest()->getMethod() 戻り値:(integer) sfRequest::GET / sfRequest::POST など。 ソース:/lib/symfony/request/sfRequest.class.php
テンプレート側で使用できるTextHelper関数。 文字列中のURLやメールアドレスを見つけ出してリンク(Aタグ)を自動的に設定する。 テンプレートにてTextヘルパーをincludeしておく必要がある。 使用方法は以下の通り。 'blank' ) ) ); ?> パラメータ $text …
schema.ymlの書き方などについて http://develop.ddo.jp/symfony/book/jp/1.0/model.html
http://propel.phpdb.org/trac/wiki/Ja/Users/Documentation/1.2/UserGuide
symfonyではユーザーセッションで認証管理を行うことができるが、ユーザーの認証状態に応じてアクションを実行するかどうかを設定することができる。 http://develop.ddo.jp/symfony/book/jp/1.0/security.html
普通に mb_send_mail() でゴリゴリ書くのではなくて、symfony のテンプレート機能を使用してメールを送信することができる。 ただし、日本語(JIS)メールを送信する場合は自前でエンコード変換が必要。 http://develop.ddo.jp/symfony/book/jp/1.0/email.ht…
symfony で現在のモジュール名やアクション名は現在のコンテキストを参照すればよい。 http://it.kndb.jp/entry/show/id/580 以下のようになる。 $module_name = sfContext::getInstance()->getModuleName(); ※templatesで使用する場合 $module_name = $sf_c…
symfonyのsf_sandoboxを解凍するとあらかじめ「batch」というディレクトリがあるけど、ここにどういったファイルを入れれば動くのか。 http://develop.ddo.jp/symfony/book/jp/1.0/batch.html 基本的には定数の設定を行った後、app ディレクトリ内のアプリケ…