メンテナーの登録は、今すぐOpenIDでログイン

hnw

Subversion アカウント: hnw

gravatar

hnw が参加しているパッケージ

CyclicValueProducer

CyclicValueProducerは、指定された配列の値を循環的に出力するようなSPLイテレータです。

デフォルトではイテレータとして無限に動作し続けますが、上限値を設定することもできます。



何の役に立つのか


あまり実用的ではないと思います

IgnoreExceptionIterator

IgnoreExceptionIteratorは、SPLのイテレータで例外が発生しても無視するようなイテレータです。

引数のイテレータ内の例外をcatchし、何もせずに破棄します。

致命的な例外が発生しないとわかっている場合に、例外の破棄を簡潔に記述できます。

とはいえ例外が発生したことに気づけなくなるのは危険なので、LoggerIteratorなどと組み合わせて使うのが良いと思います。

LazyFileIterator

LazyFileIteratorは、ファイルの内容を1行づつ取得するようなイテレータです。

LazyFileIteratorはSplFileObjectと異なり、必要になってからファイルをオープンし、不要になるとファイルをクローズします。

SplFileObjectはオブジェクト生成のタイミングでファイルをオープンし、オブジェクトが存在する間はファイルもクローズしないため、大量のファイルに対し


LoggerIterator

LoggerIteratorは、SPLのイテレータにログを取る機能を追加するようなイテレータです。

例外の内容を標準出力または標準エラー出力に表示して再スローすること、getInnerIterator()で元のイテレータを返すこと、この2点以外は元のイテレータと同じ挙動です。

元のイテレータの全呼び出しを標準出力または標準エラー出力にログとして出力する機能もあります。



何の役に立つのか

MbstringStreamConverter

Stream_Filter_Mbstringに改名しました。

NullFilehandleIterator

Perlのnull filehandleオペレータ「<>」と同じ動作を行うイテレータです。



動作例

Perlでは、「<>」オペレータを使ってフィルタプログラムが簡単に記述できます。例えば、全ての英大文字を英小文字に書き換えるフィルタは下記のように書けます。


#!/usr/bin/perl


SequenceProducer

連続した整数を順に返すイテレータ。コンストラクタ第二引数を省略すると無限に動作します。


<?php

require_once('SequenceProducer.php');

$it = new SequenceProducer(1, 5);
foreach ($it as $value) {
echo $value;

Stream_Filter_Mbstring

Stream_Filter_Mbstringは、PHPストリームに対するカスタムフィルタです。あらゆるストリームに対し、文字エンコーディングの変換および英数字/記号/カタカナの正規化を提供します。



機能一覧

以下のストリームフィルタを提供します。詳細は後述します。


convert.mbstring.encoding.*

Text_CsvReader

CSVファイルを読み込むためのクラス。


Text_VariationProducer

Text_VariationProducerは、指定した全組み合わせの文字列を作り出すようなイテレータです。n重ループや分岐を書く代わりに、文字列の組み合わせパターンを簡単な文法で記述するだけで全部の組み合わせを順に得ることができます。

任意の文字列の組み合わせを比較的簡潔に記述できます。また、Text_VariationProducerはSPLのイテレータを実装しているため、foreach文で