2008-11-01から1ヶ月間の記事一覧

Symfonyのカスタムタスク(バッチ)を作成する方法

バッチ処理用にSynfonyのタスクを作成するには、以下のコマンドでタスクのテンプレートを生成します。 symfony generate:task <TASKNAME> symfony 1.x legacy website</taskname>

Symfonyでブラウザキャッシュ用のヘッダを出力している箇所

/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…

SymfonyのsfForm派生クラスで簡単に確認画面用に要素をHiddenに変換

の方法がbrtRiverさんのところで公開されていたのでメモ。→http://d.hatena.ne.jp/brtRiver/20081128/1227824656bindした後で、sfWidgetSchema内の要素を全部sfWidgetFormInputHiddenに置き換える感じです。 こういう方法はアリですねぇ。 私はこれまでに自…

Apacheの起動時に警告が出ていてハマッたのでメモ

Webminからウェブサーバーにバーチャルホストを作成したら、Apacheの起動時に次のような警告が出ていました。 [warn] NameVirtualHost *:80 has no VirtualHostsこれ、分かってみればショボイミスなのですが、VirtualHostを設定する時にポートを指定しなかっ…

form['hoge']とformFieldSchema['hoge']の違い

sfFormとsfFormFieldSchemaはどちらもArrayAccessインターフェイスを実装しており、 $form['hoge'] $formFieldSchema['hoge'] というように、フォーム要素の識別名でアクセスできます。 これらは両方とも、フォーム要素に対応するsfFormFieldオブジェクトを…

Symfonyと格闘・・・

ここ何日かアレコレメモしながらSymfonyと格闘していて、特にフォーム周りの実装について研究していたのですが、ようやく出口が見えてきました・・。おそらく多くの人も既に同じ問題に取り組んでいることだと思いますが、フォームの「確認画面」をスマートに…

sfWidgetSchemaの設定変更はsetWidgetsの後で

sfForm派生クラス内でフォーム要素の設定を行う場合、 sfForm->setWidgets()でのウィジェットの初期化 sfForm->widgetSchema->setLabelsでラベルの設定 sfForm->widgetSchema->setNameFormatでフォーム要素のNameフォーマットの変更 などを行いますが、sfFor…

sfValidatorSchemaのオプションを変更する

フォーム定義クラス(sfForm派生クラス)内でバリデーションの設定を行う場合、SymfornyのFormsドキュメントでは以下のようなサンプルコードになっています。http://symfony.xrea.jp/1.1/forms_book/02-Form-Validation.html 「バリデータ」 setValidators(a…

条件に従ってアクションをforward/redirect/forward404するメソッド

sfAction::forwardIf($condition, $module, $action) sfAction::forwardUnless($condition, $module, $action) sfAction::redirectIf($condition, $url, $statusCode = 302) sfAction::redirectUnless($condition, $url, $statusCode = 302) sfAction::forwa…

FORMタグを生成するrenderFormTagメソッド

Google Code Archive - Long-term storage for Google Code Project Hosting.の「新しい sfForm メソッド」参照sfForm::renderFormTag()を使用すると、フォームの開始タグを上手く生成できます。

sfWidgetで表示するフォーム要素のラベルの変更

http://symfony.xrea.jp/1.1/forms_book/01-Form-Creation.htmlの「ラベル」の項によると、sfFormのwidgetSchema->setlabelsやwidgetSchema->setLabelを使用する方法が紹介されていますが、ウィジェットのコンストラクタへのオプションで直接labelを指定する…

sfWidgetFormDateRangeの初期化方法と表示フォーマット

●月●日~●月●日という日付の範囲を選択する場合に、sfWidgetFormDateRangeを使います。 sfWidgetFormDateRangeには、開始日用と終了日用にそれぞれsfWidgetFormDate要素を作成します。 また、全体のフォーマットは「template」というオプションで変更できます…

sfWidgetFormDateの表示フォーマット

sfWidgetFormDateを使用した日付選択は、デフォルトでは次のような要素が表示されます。 [ 月 ▼]/[ 日 ▼]/[ 年 ▼] この表示を「年月日」に変えたい場合は、sfWidgetFormDateに渡すオプション「format」で変更します。 '%year%年%month%月%day%日' ) ) ?> ち…

単一チェックボックス

sfWidgetFormChoiceは複数の値からの選択を前提としたものですが、オン/オフを指定するような単一のチェックボックスの場合は、sfWidgetFormInputCheckboxを使用します。 setWidgets( array( '同意'=> new sfWidgetFormInputCheckbox( array( 'value_attrib…

sfWidget系クラスの初期化チェーン

例:sfWidgetFormChoice1.sfForm派生クラス内にて、各フォームへの要素割り当て setWidgets( array( 'options'=> new sfWidgetFormChoice( array( 'choices'=>array( 'value1'=>'name1', 'value2'=>'name2'), 'multiple'=>true, 'expanded'=>true ) ) )); ?>…

sfWidget系クラスごとの必須オプション/対応オプションの調べ方

例:sfWidgetFormChoice~SYMFONY_LIB_DIR/widget/sfWidgetFormChoice.class.php configureメソッドが以下のように定義されています。 addRequiredOption('choices'); 44 45 $this->addOption('multiple', false); 46 $this->addOption('expande…

sfWidgetでチェックボックスなどを表示したい場合

sfWidgetFormChoiceを使用します。 sfWidgetFormChoiceのコンストラクタに渡す第1パラメータのオプションで、multipleとexpandedがあり、この値の組み合わせでラジオボタンやチェックボックスになります。 multiple=>false, expanded=>false :単一選択リス…

Symfonyフォーム入門ドキュメント(1.2)

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.2)

いつも方法を忘れてしまうのでメモ・・symfony 1.x legacy website svnチェックアウト プロジェクト用ディレクトリを作成 /data/bin/symfony を使ってプロジェクト初期化 # プロジェクト用ディレクトリを作成 $ mkdir prj # プロジェクト用ディレクトリへ移…

symfonyコマンドのタスク一覧

$ symfony -T

PDOStatementはTraversableインターフェイスを実装

PHP: PDOStatement - Manual PDOStatement implements Traversable {となっているように、PDOStatementクラスはTraversableインターフェイスを実装しています。 なので、execute()を実行したPDOStatementオブジェクトを直接foreach()に突っ込んでループさせ…

propel:build-allでキャッシュに書き込みできないエラー

symfony1.2(http://trac.symfony-project.org/changeset/13196/branches/1.2)で、/cache/frontend/dev/config 配下に書き出されるファイルのパーミッションが 0644 になっているので、後からコマンドラインで symfony propel:build-all をやると、ファイルに…

symfony ライブラリディレクトリのパスの設定

プロジェクトディレクトリ配化のconfig/ProjectConfiguration.class.php内で、sfCoreAutoload.class.phpを絶対パスでrequire_onceしているので、必要であればこれを書きかえる。

symfony mod_rewriteの設定

プロジェクトディレクトリ配下web/.htaccess内の「RewriteBase」は、環境のディレクトリ構成に合わせて修正する。 ドキュメントルートになっている場合は「/」のまま。

Symfony公式系RSS

ちょっとどっぷりとsymfonyに入り込んでみようということで、まずは公式系のRSSを手当たり次第に購読。こちらのページの右側の「RSS Feeds」にあります。 symfony 1.x legacy website 公式ブログ http://www.symfony-project.org/forum/rdf.php?mode=m&l=1&n…

サーバーの起動時にresolv.confが勝手に書き換わってしまう症状(Fedora Core)

DHCPの設定の名残が残っていると発生する。/etc/sysconfig/network-scripts/ifcfg-eth0 ファイルにて、 PEERDNS=yesになっていると、このようになる模様。→http://www.jp.redhat.com/manual/Doc9/rhl-rg-ja-9/s1-networkscripts-interfaces.htmlまた、Fedora…