【PHP初学者がオブジェクト指向を習得するための本10選】
PHP初学者にとってオブジェクト指向プログラミング【object-oriented programming, OOP】は一つの大きな壁となります。しかしながら、現在、オブジェクト指向は避けて通れないプログラミングの手法です。そこで、ここでは、PHP初学者にとって、最短でオブジェクト指向をマスターするための書籍10冊を紹介します。
なお、Javaの本も数冊紹介していますが、PHP初学者でも取り組める書籍ですので問題ないと思います。
■No.1
「やさしいPHP」
やさしいPHP 第3版 (「やさしい」シリーズ)
【難易度】易
【特徴】
「やさしいシリーズ」で有名な高橋麻奈さんの書籍です。基礎文法に重点がおかれており、直接にOOPに関係する本ではありません。ある程度、PHPの知識がある人には不要です。ただ、No.5で紹介する「やさしいJava」と併読することで、オブジェクト指向の知識を深めながらも、学習コストを減らすことが可能となります。
■No.2
「PHP逆引きレシピ」
PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)
【難易度】普
【特徴】
PHPプログラミングに必要なほぼ全ての項目を網羅している書籍です。新版になり、クラスとオブジェクトの章が大幅に増えて充実しています。オブジェクト指向以外にも、PHPUnitによる単体テストの使い方など、後になって役立つ知識が豊富です。
■No.3
「パーフェクトPHP」
パーフェクトPHP (PERFECT SERIES 3)
【難易度】難
【特徴】
パーフェクトの名に恥じないPHPの総合解説書です。他の本に比べて、クラスとオブジェクトの章が最も充実しています。また、オブジェクト指向の実践として、自作のフレームワークを作成します。このフレームワークの作成を通して、OOPの理解が格段に深まります。たとえ、一度で理解できなくても、以下で紹介する本を読んだ後に繰り返し読むと、理解できるようになります。
■No.4
「CakePHP2 実践入門」
CakePHP2 実践入門 (WEB+DB PRESS plus)
【難易度】難
【特徴】
メジャーなフレームワークの一つであるCakePHPの解説書です。オブジェクト指向の活用技術の一つにフレームワークがありますが、CakePHPの使い方を知ることでオブジェクト指向の理解が深まります。また、No.3のパーフェクトPHPのフレームワークの学習と併せると学習の相乗効果が期待できます。
■No.5
「やさしいJava」
やさしいJava 第5版 (「やさしい」シリーズ)
【難易度】易
【特徴】
PHP初学者のための本を紹介しているのですが、ここではJavaの本も取り上げます。Javaは完全なオブジェクト指向の言語であり、PHP学習者にとっても大いに役立ちます。基本構文はPHPに似ているので、No.1でとりあげた「やさしいPHP」と併読すれば、容易に読了することが可能です。PHP初学者がオブジェクト指向を理解するためには、Javaを理解することが結果的に最短ルートとなります。
■No.6
「やさしいJava オブジェクト指向編」
やさしいJava オブジェクト指向編 (やさしいシリーズ)
【難易度】普
【特徴】
高橋麻奈さんの「やさしいシリーズ」のオブジェクト指向に関する本です。内容的には、No.5の「やさしいJava」を受けて書かれています。そのため両書をセットで読むと理解が進みます。オブジェクト指向に特化して書かれており、OOPの基礎に加えてデザインパターンの重要なものを10個ほど学習することが可能です。
■No.7
「Java言語で学ぶデザインパターン入門」
増補改訂版Java言語で学ぶデザインパターン入門
【難易度】やや難
【特徴】
デザインパターンに関する名著です。内容的にはGoFのデザインパターン23個を上手に易しくまとめてあります。デザインパターンは、プログラミングの良い設計パターンであり、オブジェクト指向と不可分の関係にあります。本書を読むことでオブジェクト指向の真の利用価値が理解できます。
■No.8
「PHPによるデザインパターン入門」
PHPによるデザインパターン入門
【難易度】やや難
【特徴】
PHPでデザインパターン23個を解説している稀有で貴重な一冊です。デザインパターンの解説本はJavaが多く、PHPで解説されているのはこの一冊だけと言っていいでしょう。内容的にもPHPに特化していて、かつ充実しており、PHPによるオブジェクト指向の理解に寄与してくれます。
■No.9
「リファクタリング」
新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)
【難易度】難
【特徴】
リファクタリングに関する名著です。『デザインパターン』が設計の目標であるとするならば、『リファクタリング』は、設計の手段といえます。いわば、目標と手段の関係にあります。その手段では、クラスやオブジェクトの関係改善等を実施するので、必然的にオブジェクト指向の応用となります。本書は訳書であり、量も多く、かつJavaによる本なので難しく感じますが、読了するとOOPをはじめとするプログラミングの底力が培われます。
■No.10
「Java言語で学ぶリファクタリング入門」
Java言語で学ぶリファクタリング入門
【難易度】やや難
【特徴】
本書は、結城氏による書籍であり、No.7の「Java言語で学ぶデザインパターン入門」の姉妹書といえる一冊です。両書を併せて読むことで理解が深まります。また、No.9の「リファクタリング」を補完する一冊としてリファクタリングおよびオブジェクト指向の理解に寄与します。
■■■ 最後に ■■■
オブジェクト指向プログラミングを習得するためには、数年の修練期間が必要と言われたりもします。しかし、上記であげた書籍を集中的に短期間で読み込めば、数ヶ月でオブジェクト指向をマスターすることが可能だと思います。なお、PHP初学者にとっては、他言語であるJavaに取り掛かるのは抵抗があるかもしれませんが、構文が似ていることもあり、結果的に最も早く、かつ合理的にオブジェクト指向をマスターすることになると思います。井の中の蛙ではなく、大海原に出るPHP学習者になることがOOP習得の肝だと思います。
【注意】
上記本の紹介はページ作成時点での最新版です。時間の経過とともに、新たな版が出る可能性があるのでご自身にてご確認ください。