symfonyを使ったサイトリリース時のチェック項目
symfonyを使ったサイトをリリースするときに、チェックした方がよい項目をまとめました。
symfony version 1.0用になりますが、1.1系や1.2系でもほぼ同じだと思います。
2009-6-12 23:28 追記: 記事を書いた後にもっと良いサイト見つけました><。 http://symfony-check.org/en/
この投稿の続きを読む »symfonyを使ったサイトリリース時のチェック項目
symfonyを使ったサイトをリリースするときに、チェックした方がよい項目をまとめました。
symfony version 1.0用になりますが、1.1系や1.2系でもほぼ同じだと思います。
2009-6-12 23:28 追記: 記事を書いた後にもっと良いサイト見つけました><。 http://symfony-check.org/en/
この投稿の続きを読む »symfonyを使ったサイトリリース時のチェック項目
訳あってsymfony 1.2用に作られたsfCryptoCaptchaPluginをsymfony1.0用に修正してます。現在ほぼ作業が終わってこちらのリポジトリに最新版があります。
コーディング時にはまったのが、うまくCAPTCHAイメージがが出力されずエラーがでる事でした。 原因を調べるため、バイナリダンプを行った所なんと、WebDebugツールバーが出力されており、バイナリを壊していました。
WebDebugツールバー自体は通常の開発で活躍していますので、CAPTCHAの出力の時だけWebDubgツールバーを無効にしたいと思いましたが、すぐにどうやるか思いつかなかったのですが以下のようにしてうまくいきました。
この投稿の続きを読む »WebDebugを一時的に無効にする方法
初投稿のhnwです。よろしくお願いします。
symfonyでescaping_methodをESC_ENTITIESにすると問題がありますよ、という指摘です。
symfonyには標準でHTMLの出力エスケープ機構が組み込まれています。これは、テンプレートに渡された値に関して、スカラ、配列、オブジェクトのメソッド呼び出し結果など、全ての値が勝手にescapeされるようになっています。
このescapingに関する設定として、settings.ymlでescaping_strategy(デフォルト値はbc)をbothに変更するのはsymfonyの定石です。しかし、escaping_methodはsymfony 1.0のデフォルト値のESC_ENTITIESのまま、という人は多いのではないでしょうか。
escaping_methodをESC_ENTITIESに設定した場合、escapeにhtmlentities関数が使われます。実はこの関数に問題があります。
この投稿の続きを読む »escaping_methodのESC_ENTITIESには注意が必要
symfony 1.1と1.0.17がリリースされましたが、pear upgradeの際には「どちらにupgradeされるか」にご注意ください。
sudo pear upgrade symfony/symfony
この場合、1.1にupgradeされますので1.0系で開発されたものは(そのままでは)動かなくなります。
1.0.17にupgradeしたい場合は
sudo pear upgrade symfony/symfony-1.0.17
バージョン番号を付加してください。
sfPropelRemainというプラグインを作ってみました。
update/delete時に自動的に過去のレコードを退避してくれるプラグインです。こないだのサンプルコードを使って作ったので、PropelBehaviorの作成例として見てくださいね!
この投稿の続きを読む »レコード退避プラグイン作ってみました。
みなさんバッチファイルを書くことはよくありますよね。cronから定期的に呼ばれたり、コマンドラインから手で実行したりするあれです。そういったバッチプログラムをsymfonyで書くときに役立つちょっとしたおすすめを2つ。 この投稿の続きを読む »バッチプログラムを書くときのおすすめ
htmlタグ出力ヘルパー関数の属性指定引数で、トラブルの元になりそうな挙動を見つけました。
symfonyではpropel-load-dataでyaml形式のデータをDBに読み込ませることができますが、次のようにテストデータをいくつも書き続けるのは面倒です。
この投稿の続きを読む »yaml形式のデータをfor文で大量生成
symfonyのテンプレートではFormHelperを使うことでinputタグ・textareaタグなどをテンプレートで使わなくなりました。 その中でも、セレクトボックスを作成する場合はselect_tagとoptions_for_selectの2つの関数を扱います。 2つの関数の使い方を実装例を交えながら説明したいと思います。
select_tagとoptions_for_selectの2つのヘルパー関数を使ってコードを書いてみましょう。
< ?php echo select_tag("drink",options_for_select(array(1 => 'コーラ', 2 => 'お茶', 3 => '水'))) ?>
以下のように表示されます。

select_tagを使えば簡単にセレクトボックス作ることができますが、問題はセレクトボックスの先頭を空にしたいという要件はないでしょうか?
以下のようなケースです。

先頭を空にしたいのでoptions_for_selectの引数のarrayに空の配列を加えてみました。
< ?php echo select_tag("drink",options_for_select(array('' => '', 1 => 'コーラ', 2 => 'お茶', 3 => '水'))) ?>
しかし、先頭にわざわざ空の配列を作るのはコードの見栄えが悪いです。 これをoptions_for_selectの特殊なオプションで回避したいと思います。
symfonyで書かれたソースコードを見ていると、
@authorの部分が
Your name hereと書かれた以下のようなコードを良く目にします。

このように、
@authorが
Your name hereばかりになる現象を、『Your name here問題』と勝手に呼んでいます。
これは、
symfonyコマンドによる生成されたファイルに自動的に
@authorが
Your name hereというコメントが生成され、プログラマが自分の名前に書き換えるのを忘れるために起こります。別に律義に書き換えなくてもプログラムの動作には関係ありませんから気にならない人ほっといても良いです。気になる人は続きをどうぞ。
この投稿の続きを読む »『Your name here問題』