特集・コラム

メニュー

PHPer上級者になるために知っておきたいこと

vol.8 ‐ PHP『Standard PHP Library(SPL)について』

投稿日時:2013/06/11 04:06

カテゴリ: PHPer上級者になるために知っておきたいこと

SPLは、読んで文字の通り「PHP用の標準的なライブラリ」です。もう少し正確に書くと「PHP用の標準的な”クラス”ライブラリ」になります(厳密には一部例外がありますが、ほとんどがクラスになります)。
PHPの標準関数は当然ながら「関数」なのですが、SPLは「クラス」の形で提供されているのが最大の違いですね。
SPLはPHP 5.0.0以降「デフォルトでインストールされている」ほか、PHP 5.3.0以降は「無効化できない」エクステンションになりますので、よほど何か無い限りは「普通使える」と思ってよいでしょう。
ただ、PHPの常で「バージョンによってエクステンションが増えている」ので、逆の見方をすると「古いバージョンではまだ実装されていないエクステンション」もあります。実際に使う時は、きちんとバージョン情報を確認しておくとよいでしょう。

大まかに、SPLは以下のカテゴリに分けられます。今回はまず、各カテゴリについて大まかに把握をしておきましょう。

まず「データ構造」というカテゴリがあります。
アルゴリズムと併用して学ぶ「一般的なデータ構造」である、双方向リンクリスト、キュー、スタック、ヒープなどを扱うことができるクラスがここに属します。

次に「イテレータ」というカテゴリがあります。
このカテゴリのクラスを継承して実装すると、「foreachを使ってオブジェクトを配列のように処理できる」など、インタフェース的にわかりやすい実装をすることができます。

お次は「インタフェース」カテゴリです。
これは、PHPの言語機能や関数とうまいこと渡りを付けてくれるためのものですね。
例えば、Countable インターフェイスを継承したクラスは、PHPの標準関数であるcount()関数を使って「要素数」を取得することができます。
「何をもって要素数とするか」は実装次第ですね。

続いて「例外」カテゴリ。
様々なケースの「例外」に対応できるように、いくつもの例外があります。

「ファイル操作」カテゴリもあります。
こちらは「ファイル操作をOOP風に扱える」のでわかりやすいですね。継承して使うこともできますが、このカテゴリは「そのままクラスを普通に使う」事も多いです。

「その他のクラスおよびインターフェイス」というカテゴリも存在します。
文字通り「その他」ですね。オブジェクトを配列として動作させるためのArrayObject クラス、Observer パターンを実装するために用いるクラスが2つ、が、現在このカテゴリに属しています。

最後に、これだけ例外の「SPL 関数」。今までのSPLは全部クラス実装だったのですが、ここだけ関数実装になります。
色々とあるのですが、大まかに

  • クラスやオブジェクトにまつわる情報(インタフェース、親クラス名、使ってるトレイトなど)に関する関数
  • イテレーターにまつわる関数
  • __autoloadにまつわる関数
  • SPL自身にまつわる関数

が存在します。

Standard PHP Library(SPL)というものの、まずは外側の大枠を説明しましたが、イメージはつきましたでしょうか?
では次回から、各カテゴリについて、実際の実装などを少し見ていきたいと思います。

バックナンバーはこちら

IT系のお仕事特集

お仕事のご紹介には、まずヒューマンリソシアへの登録が必要です。
ヒューマンリソシア人材派遣サイトの便利な機能 ・お気に入りの派遣求人のブックマーク ・登録会への予約 ・有給休暇の管理 ・WEB給与明細の確認 ・お気に入りの情報をメール受信
登録会の入力手続きをあらかじめおこなえます。

ヒューマンリソシア派遣サービスに 登録する 無料

ページトップへ戻る
ヒューマンリソシア派遣サービスに 登録する 無料
ページトップへ戻る