Skip to Main Content
PHPクックブック ―モダンPHPによるWebアプリケーション実用レシピ集
book

PHPクックブック ―モダンPHPによるWebアプリケーション実用レシピ集

by Eric A. Mann, 廣川 類, 桑村 潤
March 2024
Intermediate to advanced content levelIntermediate to advanced
408 pages
5h 16m
Japanese
O'Reilly Japan, Inc.
Content preview from PHPクックブック ―モダンPHPによるWebアプリケーション実用レシピ集

11章ストリーム

PHPのストリームは、データリソースへの一般的なインターフェイスを表し、連続的な方法で書き込んだり読み込んだりすることができます。内部的には、各ストリームはバケツと呼ばれるオブジェクトの集合で表されます。各バケツは、基本的なストリームからのデータのチャンクを表し、図11-1に示すような、昔ながらのバケツリレーをデジタルで再現したようなものとして扱われます。

バケツリレーは、データのバケツを順番に別のバケツに渡していく

図11-1 バケツリレーは、データのバケツを順番に別のバケツに渡していく

バケツリレーは、川、小川、湖、井戸から火元まで水を運ぶためによく使われます。ホースで水を運ぶことが不可能な場合、人々は列をなしてバケツを次から次へと渡して消火にあたりました。ある人が水源でバケツに水を入れ、次に並んでいる人にバケツを渡します。列に並んだ人は動かず、バケツに入った水を人から人へと順番に運び、最後の1人が火に水をかけます。このプロセスは、火が消えるか、水源が尽きるまで続きます。

PHPを使って消火活動をしているわけではありませんが、ストリームの内部構造は、バケツリレーに似ています。これは、データを処理するコードのどの要素においても、1つのチャンク(バケツ)としてデータを渡していくからです。

ジェネレータもこのパターンに似ています†1。データのコレクション全体を一度にメモリにロードするのではなく、ジェネレータはデータをより小さなチャンクに分割し、一度に1つのデータを操作する方法を提供します。これにより、PHPアプリケーションはシステムメモリを使い果たしてしまうほど大きなデータを操作できるようになります。ストリームは、離散的なデータポイントのコレクションや配列ではなく、連続的なデータを扱うことを除けば同様の機能を提供します。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド

初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド

Jon Bodner, 武舎 広幸
Python機械学習クックブック 第2版

Python機械学習クックブック 第2版

Kyle Gallatin, Chris Albon, 中田 秀基
エンジニアが学ぶ会計システムの「知識」と「技術」

エンジニアが学ぶ会計システムの「知識」と「技術」

広川 敬祐, 五島 伸二, 小田 恭彦, 大塚 晃, 川勝 健司

Publisher Resources

ISBN: 9784814400621Publisher Website