6章オブジェクト
本章では、PHPでのオブジェクトの定義方法と作成、使用方法について学びます。オブジェクト指向プログラミング(OOP)は、よりクリーンな設計、より容易な保守、より優れたコードの再利用を可能にするものです。OOPの価値は今や誰もが認めるところで、オブジェクト指向でない言語をあえて採用しようとする人はほとんどいないでしょう。PHPはOOPの有用な機能を数多くサポートしています。本章では、OOPの基本的な概念に加え、内部検査やシリアライズといった高度なトピックを紹介しながら、PHPがサポートするOOP機能の使い方を見ていきます。
6.1 オブジェクト
オブジェクト指向プログラミングでは、データとそのデータを扱うコードとの根本的な関係性が重視されるため、開発者は、その関係性に沿ってプログラムを設計、実装することができます。たとえば、掲示板システムでは通常、多くのユーザを追跡します。この場合、手続き型のプログラミング言語では、個々のユーザはデータ構造で表され、おそらく、そのデータ構造を処理する関数のセット(新規ユーザの作成やユーザ情報の取得など)が別に存在するでしょう。OOP言語の場合、各ユーザは、オブジェクト、つまりコードが付加されたデータ構造で表されます。データとコードがあることに変わりはないのですが、OOPでは切り離すことのできない単位として扱われます。コードとデータの結合体としてのオブジェクトは、アプリケーションを開発しコードを再利用するためのモジュラーユニット(脱着可能な部品の単位)なのです。
この架空の掲示板の設計では、ユーザ情報だけでなく、メッセージやスレッドの情報についてもオブジェクトで表すことができます。ユーザオブジェクトに含まれるのは、ユーザ名やパスワードなどの情報と、「その人が投稿したすべてのメッセージを探す」といったコードです。メッセージオブジェクトは自分がどのスレッドに属しているのかを知っていて、新しいメッセージを投稿したり、既存のメッセージに返信したり、メッセージを表示したりするコードを持っています。スレッドオブジェクトは、複数のメッセージオブジェクトをまとめて管理し、スレッドのインデックスを表示するコードを持っています。ただし、機能をオブジェクトに分割する方法は1つだけではありません。たとえば別の設計では、新しいメッセージを投稿するコードを、メッセージオブジェクトではなくユーザオブジェクトに持たせる、という考え方もあるでしょう。 ...
Get プログラミングPHP 第4版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.