5

クロージャーが DSL (流暢なインターフェース) の作成にどのように役立つかを示す PHP の例を教えてください。

編集:次の質問で受け入れられた回答は、ネストされたクロージャーについて説明しています。誰かがその例を PHP に翻訳できれば、それも役に立ちます: 流暢なインターフェースの経験はありますか? あなたの意見が必要です!

4

1 に答える 1

2

これは私が考えることができる最初の例です。素晴らしいものではありませんが、アイデアが得られます。

$db = new Database();
$filteredList = $db->select()
           ->from('my_table')
           ->where('id', 9)
           ->run()
           ->filter(function($record){
            // apply some php code to filter records
        });

そこでは、流暢なインターフェイスを使用して、ORM を使用してデータベースにクエリを実行し、取得したレコードセットにフィルターを適用します。メソッドが、次のようなメソッドrun()を持つ RecordSet オブジェクトを返すと想像してください。filter()

public function filter ($callback)
{
    return array_filter($this->recordSet, $callback);
}

わかりますか?

于 2012-02-21T23:43:49.080 に答える