クロージャーが DSL (流暢なインターフェース) の作成にどのように役立つかを示す PHP の例を教えてください。
編集:次の質問で受け入れられた回答は、ネストされたクロージャーについて説明しています。誰かがその例を PHP に翻訳できれば、それも役に立ちます: 流暢なインターフェースの経験はありますか? あなたの意見が必要です!
クロージャーが DSL (流暢なインターフェース) の作成にどのように役立つかを示す PHP の例を教えてください。
編集:次の質問で受け入れられた回答は、ネストされたクロージャーについて説明しています。誰かがその例を PHP に翻訳できれば、それも役に立ちます: 流暢なインターフェースの経験はありますか? あなたの意見が必要です!
これは私が考えることができる最初の例です。素晴らしいものではありませんが、アイデアが得られます。
$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);
}
わかりますか?