- ベストアンサー
PHPにおけるクラスの必要性について
私はPHPを主に、ウェブスクレイピング、cronと連携してウェブサイトの更新、MySQLの更新などで使用します。 しかし未だにCLASSの概念がよく理解できません。 私が書くコードは、functionはよく定義しますが、CLASSを使うことがありません。 どういう場面でCLASSを使うのかがいまいち理解できないからです。 継承やらコンストラクタやら、概念としてあるのは理解できるのですが、ではそれが実際にどう役立つのかがわかりません。 CLASSを使えばできること、CLASSを使えば効率が上がることなどをPHPのプログラミングの実例で教えてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
手書きで最初から最後までコードを書くというのは、比較的規模の小さい開発だけだろうと思います。ある程度以上の規模になると、やることも煩雑で複雑になりますし、多数のページを統合的に管理するための仕組みも必要になります。そのために各種のライブラリやフレームワークを導入することになります。 こうしたライブラリやフレームワークでは、たいていクラスを使って機能が実装されています。なぜなら、そうしないと収拾がつかないことになるからです。例えば特定の状況下で利用する数十の変数があったとして、それらは必要に応じて値を保持しいつでも利用できないといけません。これらをすべてグローバル変数にした場合、すべての状況下で必要とされる変数は数百にものぼり収拾がつかないでしょう。こうした大規模開発用のフレームワークなどではクラスは必須になります。 また、特定の役割を果たす機能が状況に応じて複数ある場合、それらをすべて同じ名前のメソッドとして用意することで効率がぐっとアップすることもあります。例えばデータベースアクセスの場合、関数を使うと、MySQLやPostgreSqlでそれぞれ関数名が違っていますね? もし、データベースを変更しようとしたら、これらの関数をすべて探しだして書き換えなければいけません。それぞれのデータベースごとにクラスを定義し、その中にすべて同じ名前でアクセス用のメソッドを用意すれば、データベースを変更する場合も、使用するクラスを変更するだけで他は一切書き換える必要もありません。(PDOのように単独クラスであらゆるデータベースを使えるようにすれば更に便利ですが) 実は、私自身も個人でフレームワークも使わずにコードを書くときは、ほとんどクラスは使いません。せいぜいPDOなどの既存クラスを利用する程度です。が、CakePHPなどのフレームワークを導入すると、とにかくクラスを書くことが基本になりますから、クラス以外のコードを書くことはなくなります。一度、そうしたフレームワークを使ってみると、クラスの役割が実感できるのではないでしょうか。
その他の回答 (1)
- yuv921
- ベストアンサー率44% (12/27)
クラスを定義してインスタンスを生成すれば、クラスで定義した変数も使えます。 functionでは処理させるだけ、または戻り値を得ることができる といった程度じゃなかったでしょうか。 (最近さわってないので忘れかけてますが。。。) ただ個人的に、PHPのクラスを使う文法が見にくくて苦手です。 私がクラスの勉強がてら作ってるプログラムを見て、 「そんなんごときにクラスを使うか…」と言われたことがあり、 クラスが有効になるのは、かなり大きなプログラムかな、と思ったことがあります。 手元にデータが残ってないので実例はありませんが、 PHP クラス 実例 等で検索するといくつか出てきましたよ。
お礼
なるほどです。フレームワークの導入は考えたことがありませんでした。 一度試してみます。