「レベルアップPHP」という本を書きました。 技術書典6の個人サークルでお披露目しまして、現在好評発売中です。
レベルアップPHP ?言語を理解して中級者へ? (技術の泉シリーズ(NextPublishing))
- 作者: 佐々木勝広
- 出版社/メーカー: インプレスR&D
- 発売日: 2019/04/12
- メディア: オンデマンド (ペーパーバック)
- この商品を含むブログを見る
この本なんですが、技術書典5の「PHP中級者を目指す」という同人誌を底本としまして、わりと苦労して書き上げた本です。 苦節の末に発売できたので、ご紹介したいと思います。
モチベーション
本書を書こうと思った最初のきっかけは、自分が読みたいと思うPHPの書籍が少なかったことです。 とくにPHP7をはじめとする新しいPHPについて書かれた書籍が欲しくて、初心者向けではないPHP本を意識して書きました。
入門書でもなく、フレームワーク関連の書籍でもなく、PHPという言語そのものについて書いた書籍です。
どんな方に読んでもらいたいか?
- PHPの入門書を読み終えて、次に向けてステップアップしたい方
- 古いPHPの知識で止まってしまっており、最近のPHPがわからない方
- 言語としてのPHPに興味がある方
どのフレームワークを使っている方であっても、役に立つ内容を目指しています。 少々マニアックな内容もあるのですが、自分が持っている(または調査した)PHPの知識を、時間の許す限り詰め込みました。
章構成
全16章でサイズはB5です。ページ数は全体で188ページになります。 B5はいわゆる一般的な同人誌サイズで、商業の技術書に多いA5より少し大きいです。
同人版からそれなりの量を追記しているため、技術書典5の「PHP中級者を目指す」をお持ちの方でも楽しめます。
- 第1章 型別に理解する変数の扱い方
- 第2章 変数のスコープと特別な変数・定数
- 第3章 型の変換
- 第4章(PHP7) 型宣言
- 第5章(PHP5.3)名前空間
- 第6章(PHP5.3)オートロード
- 第7章 外部ライブラリーの活用
- 第8章(PHP7)エラーと例外
- 第9章 アーキテクチャー
- 第10章 PSRコーディングガイドライン
- 第11章 正規表現を楽しもう
- 第12章 テンプレートエンジン
- 第13章 パフォーマンスとデバッグ
- 第14章 PHPとバージョンアップ
- 第15章 良質なPHP情報を得るには?
- 第16章 Hack/HHVMとPHP
- 付録A(PHP5.4) ビルトインウェブサーバー
- 付録B PHPエンジニアとサーバーサイド
- 付録C 静的コード解析と周辺ツール
- 付録D セキュリティー
第1〜4章 変数と型と型宣言
「レベルアップPHP」の前半は、変数と型についてです。 もともと型宣言を紹介することが目的で書きはじめた書籍のため、PHPの型について重点的に書きました。
同人版から積極的に追記しており、PHPの型を網羅することを意識しています。
第5〜7章 名前空間から外部ライブラリーへ
composerを使った外部ライブラリーの紹介を最終目的に、名前空間とオートロードを解説しました。 名前空間とオートロードがわかれば、composerで外部ライブラリが読み込まれる仕組みを理解できます。
第8章 エラーと例外
エラーと例外についてです。PHP7ではエラー関連に変化があるため、キャッチアップしておく必要があります。
第9章 アーキテクチャー
フレームワークという土台の上で、「どのようなアーキテクチャーを選定して開発していくのか?」 私も迷うことが多いのですが、やはりアーキテクチャーは知っておいたほうが良い分野のため、触りではありますが紹介しています。
第10章 PSRコーディングガイドライン
PSRを紹介したのは、チーム開発において統一性のあるPHPの書き方というものを考える機会になれば良いと思ったからです。
「PSR0、1、2」は基本ですが、とくに知ってほしかったのがPSR3のロガーインタフェースです。 ログにもガイドラインや推奨される書き方があり、適切なエラーレベルを選定することがWebシステムの運用に役立ちます。
第11章 正規表現を楽しもう
私的な話ですが、私はPerlが好きな(PCREはPerlと類似している)ので、書くモチベーションが高かった章です。 正規表現は難しく感じる方も多いかもしれませんが、扱えるようになってくると楽しいです。
正規表現のテクニックはPHP以外でも役立つので、純粋にプログラマーとしての実力を上げたい方にも必要な知識かと思います。
第12章 テンプレートエンジン
同人版からは、素のPHPタグにおける変更点について追記しました。 ASPタグ(<%, %>, <%=)はPHP7で削除されてしまったのですが、意外と使っている方もいそうな気がしています。
第13章 パフォーマンスとデバッグ
PHPの入門書では、パフォーマンスやメモリー使用量について触れられることは少ないため、あえて追記しました。 var_dump()やmemory_get_usage()を知っているだけでもだいぶ違いますし、PHPがメモリを節約するためのコピーオンライトについても書きました。
私は新人時代にパフォーマンスの悪いプログラムで苦い経験があるため、同じ轍を踏む方が少しでも減らせれば良いなと思っております。
第14章 PHPとバージョンアップ
PHPは毎年のようにバージョンアップを繰り返すプログラミング言語のため、変化についていくための努力が必要になります。
第15章 良質なPHP情報を得るには?
PHPの情報収集についてです。 本書で取り上げた中でひとつだけ挙げるとすれば、「WEB+DB PRESS」の連載記事は総集編も含めて読んでおくと役に立ちます。
第16章 Hack/HHVMとPHP
PHPにも派生言語があることを知ってほしくて追記しました。 派生言語が誕生した動機やモチベーションを知っておくことで、PHPの特性や弱点などが見えてきます。
付録
付録はオマケ程度の位置づけなのですが、ビルトインウェブサーバーはもともと「PHP中級者を目指す」の第1章です。
ビルトインウェブサーバーを使えば、ルーティングエンジンをお手軽に体感したり、APIのモックサーバーを簡単に立てることができます。
さいごに
私ごとで恐縮ですが「レベルアップPHP」は技術書典6向けの同人誌の執筆と時期が重なったため、とても苦労しました。 そのため今年の年末年始休暇は、ほぼ本書の執筆だけで終わってます(苦笑い)。
ひたすらPHPそのものについて書いた本でして、多少マニアックな側面もありますが。 書くのに苦労しただけあって、少なくともPHPエンジニアである自分が読みたいと思える本にはなってます。
技術書典6は終わってしまいましたが、5/3の「埼玉実業実学書典(銭けっと)」にも本書の見本を持っていきます。 (注釈:まだ未確定ですが、現時点では本書の電子版DLカードを当日販売する予定です) もし埼玉の近くにお住まいの方がいらっしゃいましたら、当日もぜひお待ちしておりますー。
レベルアップPHP ?言語を理解して中級者へ? (技術の泉シリーズ(NextPublishing))
- 作者: 佐々木勝広
- 出版社/メーカー: インプレスR&D
- 発売日: 2019/04/12
- メディア: オンデマンド (ペーパーバック)
- この商品を含むブログを見る