TOP書籍連動> まとめ
まるごと PHP!
まるごと PHP!

Part1:PHP5のオブジェクト指向(3)

著者:桝形誠二(MASUGATA, Seiji)   2005/2/28
前のページ   1   2
まとめ

   ここまで紹介してきたオブジェクトの新機能以外にも、さまざまな新機能がPHP5にはあります。ざっと列挙するだけでも、スタティックメソッド、イテレータ、オブジェクトの修飾参照、オブジェクトの複製、で新に__autoload()、__toString()、Reflection APIなどなど、数多くの機能がPHP5で新たに導入されたことがわかるでしょう。

   特に、Reflection APIは、オブジェクトのほとんどすべての情報を取得することができるので、オブジェクトの内容を解析したいときには便利です。Reflection APIに関しては以下のWebページが参考になるでしょう。


   PHP5で大幅に強化されたオブジェクトの機能により、容易にオブジェクト指向プログラミングを実践することが可能となりました。しかし、1つ注意してほしいのは、今までのPHPでもオブジェクト指向プログラミングを実践することは可能であるという点です。乱暴な言い方をしてしまうと、オブジェクト指向とはあくまで考え方であり、クラスの機能が貧弱だったからといって、オブジェクト指向プログラミングを実践できないというわけではありません。

   その証拠に、筆者は諸事情によりクラスをほとんど使っていませんが、オブジェクト指向プログラミングを実践していると(勝手に)自負しています。使わなかった理由としては、PHP3、PHP4、そしてこれからPHP5を利用していく上で、仕様変更が非常に大きかったクラスという存在に依存するプログラムを書いていくのは、互換性を維持していく上で阻害要因となると考えたからです。

   すべてのバージョンで同じ使い方で同じ動作を行うために取った手段として、クラスを使わず、関数を定義していくスタイルを選択しました。そのため、強引であったり特殊な対応であったりとまったくスマートではありませんでしたが、これからは特殊な対応を取らずともオブジェクト指向プログラミングを容易に実践できると信じています。

   PEARのPHP5対応状況も気になるところですが、いずれ改善されていくことでしょう。

PHPは大規模開発向きじゃない?

   すでに旧聞に属することで恐縮ですが、エキサイト株式会社の前CTO井上俊一氏がプライベートなブログでPHPについて書かれておられます*。タイトルは「PHPはちょっと」。要旨はCNET JAPANに掲載された楽天事業カンパニー開発本部開発推進部安武弘晃部長のインタビュー『「要は使い方次第」:楽天、PHPを語る』への問題提起で、井上氏としては「大規模開発はやはりJAVA、PHPは自由度が高すぎて大規模開発向きではない」という結論に落ち着いています。

   この井上氏の発言に対しては、あっちこっちのブログで反論が掲載されているので、ここでは取り上げません(言語関係のこの手の論議は最終的に宗教戦争になりますし)。興味のある方はキーワード「PHP 大規模開発」でググってください。

   井上氏のブログを読んで感じたのは「なんかこの話、20数年前に読んだ覚えがある」というものでした。もちろん、20年前にはPHPなど影も形もないわけで、そのときは「PHP」のところが「C」でした。

    識者曰く「Cは言語仕様がいい加減で、企業向けの開発では使い物にならない」「Cはプログラムを書く人間の技量にプログラムの質が大きく左右される」等々。ネッ、似てるでしょう。

   その後、なんやかんや言われたCは不動の地位を獲得し「Cを知らずしてプログラムを語るなかれ」という状況になり、C自身も世の中の流れに合わせてオブジェクトを指向してC++に模様替えしたりしたのは皆様御存知の通りです。

   さて、PHPもC同様、毀誉褒貶はあってもプログラミング言語の王道を行くのか、はたまた世の中にゴマンとある泡沫言語と同様、いつの間にか消え行く運命なのか。結果がわかる20年後が楽しみです。

*http://inoue.typepad.com/searchengine/2003/11/php.html

前のページ   1   2



著者プロフィール
桝形 誠二
様々な言語を経験していく中でPHPと出会い、初心者に易しいという魅力に惹かれ続けて早5年。色んな事をPHPで実装しようとしすぎて周囲の反感を買いやすいのが最近の悩み。


INDEX
Part1:PHP5のオブジェクト指向(3)
  __call( )、__get( )、__set( )
まとめ