PHP7にバージョンが上がったし「初めてのPHP」の新版を買ってみた

PHPのメジャーバージョンが5から7になり、各レンタルサーバー会社もPHP7をカバーするようになってきました。私もそれほど苦も無くPHPを書けるようになりましたが、初心を忘れないためにもあえて入門書に位置づけられる「初めてのPHP」を買ってみました。

いつもどおりアマゾンで買おうとしたら、まさかの売り切れ状態。1か月以上待ちになっていたので、オライリー本社から取り寄せました。結構待たされるかと思ったら2日後に届きました。やっぱり版元には残ってるもんですね。

個人的には「パーフェクトPHP」が一番好き

私はこれまでPHPに関する本を20冊以上は読んできました。PerlとかRubyとかPythonとかJavaとか、手あたり次第読みながら打ち込んで動かしてみたいなことをやってた時期もありました。が、なんだかんだで使う機会の多いPHP関連の本が一番読んできた気がします。で、一番身になった本を1冊選べと言われたら、「パーフェクトPHP」を選びます。

「パーフェクトPHP」の何がいいかというと、PHPの言語についてはもちろんですが、Webアプリケーションフレームワークやセキュリティについてもコッテリと書いてくれてるんです。Webアプリケーションフレームワークについては、CakePHPとかSymfonyとかの使い方ではなく、フルスクラッチで簡易なものを作るというやり方を取っています。「流行などに流されず、本当に大切な部分を学んでほしいから」という執筆陣のアツい想いからそうしているらしいんですが、これがほんとにありがたいです。

ぶっちゃけ初心者からしたら、何が書いてあるのか意味不明な部分です。私も2回ほど挫折して3回目にやっと動くものができましたから。でも、自分が実際にCakePHP3でWEBアプリを作るようになってから読み返すと、非常に得るものが多いです。何度も読み返していたので本はボロボロになってきてます。

それくらい大好きなパーフェクトPHPですが、初版が2010年で「PHP5.3からは名前空間が使えるぜ」みたいなことが書いてあるくらい古くなってきています。私の個人的な願望としては、「パーフェクトPHPのPHP7対応の最新版」を出版してほしいとガチで思ってます。そうはいっても、なかなか実現するまでのハードルは高いだろうということで、「初めてのPHP」でPHP7の情報をキャッチアップしようという流れになりました。

「初めてのPHP」はホントの初学者向け、少しでも学んだ人には「パーフェクトPHP」がオススメ

初めてのPHPにザッと目を通して、読み込み始めているところですが、やっぱり初心者向けの内容だなぁという印象を受けました。それでも、私のような不勉強な輩からするとカバーしきれていなかった部分を拾えたりするので、十分に読む価値があります。先ほど情報が古くなっていると言った「パーフェクトPHP」ですが、PHPの書き方を一通り覚えて簡単なものを作れるという人にとっては「パーフェクトPHP」の方がオススメです。

もし私が昔の自分にPHPを学ぶときオススメするなら、この順番でこれらの本を選ぶ

私は特に専門的な教育を受けることも無く独学でPHPを学んできました。それだけに回り道ばかりしてきたような気がします。得るものも多かったですが、失った時間も少なくありません。ま、トータル的に楽しかったのでいいんですけどね。とはいえ、もし自分が「プログラミングって何？おいしいの？」と思っていた頃に戻れるならこの順番で学んでいくだろうなぁというのをシェアしておきます。PHPの勉強を始めようという方の参考になれば幸いです。

いきなりはじめるPHP

まずは、PHPだと何が嬉しいのか？を実感することが大切。そのために手軽に書いて動かしてみて、「できた！すげー！」っていう体験をするのが一番。そういう意味では「いきなりはじめるPHP」がオススメ。HTMLやデータベースについてもサラッと書いてあるので、自分に何が必要なのかがボンヤリと見えてくる状態までは持っていってくれます。

PHP逆引きレシピ 第2版

2番目に読んでほしいのが、このPHP逆引きレシピ。この本は、タイトルからもわかるとおり本というよりも便利な辞書という感じの本です。「この機能を実装するには、どう書けばいいの？」ということに対する答えがズラーッと書いてあります。この本に書いてある部品をつなぎ合わせて、とにかく自分の欲しいものを作りまくるのをオススメします。書いて動かして、エラー出たから書き直して、また動かして・・・というのをひたすら繰り返すことで、実践力が養われます。

また、書きまくっていくと「同じ処理を何度もコピペして書くと変数の数を変えるとき大変なので何とかしたい」とか「スゴイ人がつくったクラスを使いたいんだけど、どうやって取り込んだらいいかわっかんない！」といった課題が見つかってきます。そういった課題を一つずつクリアしていくことで、プログラミング力が磨かれていきます。

PHP+MySQLマスターブック

私もそうだったんですが、PHPを勉強してる気でいるとMySQLとかのデータベースについて、そこまで学びが進まなかったりします。WordPressを設置するときに、データベース名とかが設定できればいいや、みたいな感じ。ただ、自分でWEBアプリを作ろうと思うと、どのようなデータをどのテーブルに保存するかといったことまで考えなきゃいけなくなります。必然的にSQLの知識も必要になってくるんです。そのPHPとMySQLの橋渡し的な学びを得られるのがこの本です。

本書通りに進めて行くと会社で使えるレベルの会員システムができあがるので、WEBアプリがどういうものなのかを作りながら知っていくことができます。「ログイン・ログアウトってこういう風にすれば実現できるんだなぁ」などなど、新しい発見が楽しかった記憶があります。

パーフェクトPHP

最後にオススメなのがパーフェクトPHPです。この本を全部理解するくらい読み込めば、困ることってほとんどなくなるんじゃないかと思います。プログラミングやフレームワーク、セキュリティについての概念みたいなものが浸透するからです。私もこの本を熟読し、わかりにくかったところは書いて動かして理解を進めました。覚えが悪いので何度も読み返しています。今でも気になったり、書いてて詰まったりしたときには読み返して基本に立ち返ることがあります。私の中では完全に軸のような存在になっている本です。

オープンソースのドキュメントを読む

ここから先は、本よりもオープンソースを読むのが良いです。ソースコード自体を読むのがハードルが高いと思ったら、ドキュメントを読んでそのライブラリなりフレームワークなりを実際に動かしてみるとよいです。英語のドキュメントも「理解できない」とあきらめず、Google翻訳などを駆使して読んでいけば段々理解できるようになってきます。で、あるとき気づくんです。「日本語で書いてあるより英語で書いてある方がシンプルでわかりやすい」ということに。そこまできたらしめたものです。私は今このあたりにいます。

まとめ

偉そうにツラツラと書いてきましたが、学びの速度は人それぞれ。自分にとって必要なものや、やってて楽しいと思えることを、ちょうどいいペースで進めるのが一番です。本当に苦手なら、得意な人に任せるというのも立派な課題解決の方法ですしね。私自身も楽しみながらPHPで遊んでいく感覚を忘れずに、自分の欲しいものや誰かが欲しがっているものを作り続けていけたらいいなと思っています。

2018/5/24 追記

「初めてのPHP」をしっかり読み込んだレビュー記事を書いたので、合わせてチェックしてみてください。

2020/2/4 追記

この記事を書いてから3年近くが経ちますが、PHP初心者にオススメする本のラインナップがほとんど変わってないことに驚きを覚えました。（3年前にオススメしてた本のことをすっかり忘れていたので）

学習のポイントなども含め、改めて記事にしましたので合わせてお読みください。