PHP入門 | 構造とオブジェクト指向 | なぜオブジェクト指向が必要なのか?
ここまで、オブジェクト指向の基本、特に「クラス」を作る方法と使い方について大まかに説明してきたが、読んでみてどう感じただろうか。
「便利そうだけど、面倒だ。実際には使えないのでは?」
こう考えた人も多いだろう。確かに、膨大なコードを書くようになれば必要になる。しかし、そのような巨大なプログラムなど作らない。自分が作るサイトの規模では、いちいちクラスは必要ない。そう考える人も多いと思われる。
しかし、そのような人でも、オブジェクト指向を理解していないと困ることがいろいろある。それは何を意味するのだろうか。
1. 標準機能がクラスに置き換わっている
まず何より大きいのは、「最近のPHPでは標準で提供される機能が、関数ではなくクラスに置き換わってきている」という点である。
たとえばXMLを利用するための機能を考えてみよう。昔はすべて関数として用意されていたが、現在はSimpleXMLElementというクラスのインスタンスを作成して利用するのが一般的になりつつある。
また、データベースアクセスも、以前は各データベースごとに多くの関数が用意されていたが、現在はPDO(PHP Data Objects)というクラスのインスタンスを使えるようになっている。
このように、標準で提供される機能は徐々に関数からクラスへ置き換わっている。今後の利用を考えると、オブジェクト指向に慣れておく必要がある。
2. フレームワークの多くはクラスである
最近では、ある程度の規模のサイトになると「フレームワーク(framework)」を利用することが多くなっている。特に「CakePHP」は、簡単で理解しやすいフレームワークとして広く使われている。
このようなフレームワークは、ほとんどすべてが「クラス」で構成されている。フレームワークは膨大なソースコードで構成されており、すべてを関数で構築しようとすると非常に難しいコードになる。また、クラスとして整理しなければ、非常に複雑になってしまう。
このようなフレームワークを使うには、オブジェクト指向の知識は必須だと言える。
3. 保守を考えるならクラスにすべきである
今サイトを作った人は、「とりあえず動けばよい」と考えているかもしれない。しかし、もし「長くサイトを運営したい」と考えるなら、今後の保守を考えなければならない。
保守を考えたときに何より重要なのは、「たとえ自分が書いたコードでも半年経てば忘れてしまう」ということである。サイトが次第に高度になり、それに伴って関数も増えていくと、いつか自分でも手に負えなくなるかもしれない。
最初からクラスの形で整備しておけば、ある程度きれいに整理しておくことができる。また、機能を強化するときにも、既存のクラスを継承して拡張するなどすれば対応しやすい。何より、いざというときには元のクラスに戻すこともできるため、問題が起きても安心である。
こうしたことを考えると、PHPでも今やオブジェクト指向の知識は必須になっていると言ってよいだろう。「自分にはクラスなど必要ない」と思っていても、まず知識だけでも身につけておけば、いざというときに不便を避けられるかもしれない。
「まず、オブジェクト指向によるサイト構築がどのようなものか学びたい」と思うなら、「CakePHP」フレームワークを使ってみることをおすすめする。これを使ってみれば、オブジェクト指向によるサイト構築の世界がどのようなものかよくわかる。