ぷぎがぽぎ このページをアンテナに追加 RSSフィード

2008-04-25

[]Google App Engine

まだまだ先かなーと思っていたらアクティベートされてた。

よし。何かつくる。

Hello,

Thanks for signing up to try Google App Engine! Your account has been activated, so you can begin building applications!

[]forとforeach

今日、社内で「PHP配列をループで回すのにforを使うか、foreachを使うか」という話が面白かったので、メモ。

PHP 配列を回すならforかforeachか

私は基本foreachです。PHPに慣れてしまったせいかもしれませんが。。。

もし、forを使うとしたら

<?php
  for ($i = 0 ; $i <count($list); $i++) {
    echo $list[$i]['id'] . PHP_EOL;
    echo $list[$i]['name'] . PHP_EOL;
  }
?>

とするよりは


<?php
  for ($i = 0, $max = count($list); $i < $max; $i++) {
    echo $list[$i]['id'] . PHP_EOL;
    echo $list[$i]['name'] . PHP_EOL;
  }
?>

と書くようにしてます。ってこれは常識なんでしょうか?

って、そこまで神経質にならなくてもいんでしょうけど。。

2008-04-14

[][] Propelをより直感的に扱うプラグイン


最近PropelでもDoctrineのようにメソッドチェーンを使うことでよりCriteriaより直感的に記述できるプラグイン

no titleがリリースされました。

上記ページで紹介されている、このプラグインで書かれたサンプルが以下

$articles = sfPropelFinder::from('Article')
            ->whereTitle('like', '%world')
            ->whereIsPublished(true)
            ->orderByCreatedAt()
            ->find();

どうです?

かなり直感的ですよね。

ただ、記述がスマートになるだけで、Propelが速くなるわけでもなく、結局複雑なクエリは。。。でしょうけどね。。

[][]ファイル開いて文字化けしてたら

2008-04-13

[][]第1回 symfony勉強会資料

symfony勉強会に参加&発表してきました。

今回、初めてこのような勉強会で発表する機会をいただきました。私は、声小さかったり、早口であったり、挙動不審だったり、内容が薄かったりと駄目っぷりを晒す結果でした。 orz

発表したスライドは以下からPDFで見る事ができます。

第1回 symfony勉強会 基礎編 PDF

それにしても、普段では体験できない貴重な経験ができました。これに懲りずにいろんなイベントに積極的に参加したいと思います。


id:yandodさんからCakePHPバッチ頂きました。ありがとうございました!あえて今後のsymfonyの勉強会では必ず身につけます。symfonyでもグッズないのかと探してみましたがないみたいでした。残念。

また、ディノさん場所提供ありがとうございました。月宮さんおつかれさまでした。

懇親会後ディノ飴をいただいたのですが、焼き肉後のガムを連想してしまいました。

そういえばぺちぱーといえば肉なのでぺちぱーガムとかキャンディなんかあると。。。

no title

2008-04-07

[][]symfonyのエスケープ設定

symfonyにはXSS対策として、アサインした変数の値をテンプレートで利用するときにエスケープする設定があります。

しかし、この機能自体は途中で実装されたため、symfony1.0ではデフォルトではBC(後方互換モード)に設定されています。

bcモード

  • $sf_data経由で呼び出す変数はエスケープされている
  • アクションでアサインされた通常の変数はエスケープ処理されない

他にも


offモード => $sf_dataを使用しない

  • $sf_dataは利用できない
  • アクションでアサインされた通常の変数はエスケープされない

onモード => $sf_dataだけが利用可能

  • $sf_data経由で呼び出す変数はエスケープされている
  • アクションでアサインされた通常の変数はテンプレートで直接呼べない

bothモード

  • $sf_data経由で呼び出す変数はエスケープされている
  • アクションでアサインされた通常の変数もエスケープされている

というようになっています。

なんともややこしやですが。。つまりはデフォルトの設定ではなくbothを指定すべきで、エスケープされていない値が欲しいときは


$sf_data->getRaw('hoge')

とするようにすべきなんです。


と、なぜにこんな話を書いているかというと、symfony1.1ではこのエスケープ設定がonとoffの2種類になります。

ref: http://trac.symfony-project.com/changeset/8201

ref: http://trac.symfony-project.com/changeset/8260

デフォルトはoffになるそうなんですが、これがbcと同等のようです。

そして、onがbothと同等のようで、いままでのon,offとは意味合いが異なります。

というわけで、今後のescaping_strategyは

  • symfony1.0 なら both
  • symfony1.1 なら on

で開発しましょうというメモ

2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |