「yield」タグアーカイブ

Rails で多段レイアウト


Rails でレイアウトファイルを入れ子にする方法です。

大枠のレイアウトがあり、URLによってその中のレイアウトをある程度決定したい場合に使えます。 例えば、 Adminページではページ下部にXXを表示するといったように。

続きを読む Rails で多段レイアウト

php でディレクトリ配下の全ファイルを逐次処理する方法


PHPを使ってディレクトリ配下の全ファイルを再帰的に処理する方法です。 イテレータを使います。

例えば全ファイルの絶対パスを出力するなら次のようにします。

イテレーションする対象をファイルだけに絞ったものを作るのもありですね。 次のように yield を使って関数を作ることもできます。

でもこれは yield を使っているため PHP 5.5 からしか使えません。 FilterIterator を使えば PHP 5.1 から使える関数を作成できます。

このように FileFilterIterator を作り、 $iterator = new FileFilterIterator($anIterator); のようにすれば、ファイルのみの Iterator が作れます。

Iterator なんて 言語の機能に依存しすぎだから readdir つかって自分でイテレータ作るべきだ」というご意見もあります。