<お知らせ> 50ページ以上の加筆をし、本書を再構成した商業誌版の「レベルアップPHP」があります。今後はそちらをお求めください。 https://nextpublishing.jp/book/10605.html <概要> 本書のコンセプトは、PHPの入門書にはあまり載っていない事柄を中心に掲載することです。私の執筆時間が許す限りのネタを、詰め込んでいます。 本書はPHPの言語そのものについて書いた本であり、特定のフレームワークに依存するような内容ではありません。 どのPHPフレームワークをお使いの方でも、お楽しみいただける内容になっています。 <本書のターゲット> PHPの入門書を読み終え、次のステップを目指している方 昔のPHPは使っていたが、最近のPHPは分からない方 本書には、PHPの基本構文の解説はありません。入門書を読み終えたPHPエンジニアが、もっとPHPを知りたいと思う需要に応えるための本になっています。 ※本書は、技術書典5のイベント会場で頒布した同人誌のPDF版です。 <目次> まえがき サンプルコード 第1章 (PHP5.4) ビルトインウェブサーバー 1.1 ビルトインウェブサーバーのメリット 1.2 ビルトインウェブサーバーの基本文法 1.3 ビルトインウェブサーバーで学ぶルーティングエンジン 第2章 (PHP7) 型宣言 2.1 型宣言のサンプル 2.2 型宣言が必要である理由 2.3 型宣言の特徴 2.4 クラスインスタンスやNULL値への適用 2.5 弱い型付けと強い型付け 2.6 戻り値の型宣言 2.7 型宣言のTypeError 2.8 型を意識したPHPアプリケーション 2.9 PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計” 第3章 変数のスコープを意識したアプリケーション開発 3.1 変数のスコープを限定したい! 3.2 変数のスコープは3種類 3.3 ローカルスコープ(関数内スコープ) 3.4 グローバルスコープ 3.5 スーパーグローバル 第4章 (PHP7) 新機能や新演算子への招待 4.1 推奨されなくなる機能 4.2 PHP7は、なぜPHP5より速いのか 4.3 (PHP7.0)Null合体演算子(??) 4.4 (PHP5.3)エルビス演算子(?:) 4.5 (PHP7.0)宇宙船演算子(<=>) 4.6 (PHP7.0)定数配列 & (PHP7.1)定数のアクセス権 4.7 (PHP7.0)無名クラスの活用 4.8 (PHP7.1)使いやすくなったlist代入 4.9 (PHP7.0)assertによる簡易テスト 4.10 (PHP7.0)Errorクラスの追加 4.11 PHP7の情報を得るには? 第5章 (PHP5.3)名前空間 5.1 名前空間のない世界線 5.2 住所を付与するための名前空間 5.3 名前空間はなぜ使われているのか? 5.4 関数や定数の名前空間 第6章 (PHP5.3)オートロード 6.1 オートロードの基本形 6.2 オートロードの自動化 6.3 require_onceとの違い 第7章 外部ライブラリの活用 7.1 PECLによるモジュールのインストール 7.2 PEARによるモジュールのインストール 7.3 Composer + Packagist 7.4 Composerの構成と登場人物をおさらいする 第8章 アーキテクチャ (※アーキテクチャの紹介がメインで、細かい解説ではありません) 8.1 サーバーサイドのアーキテクチャ 8.2 レイヤー追加系アーキテクチャ 8.3 フレームワーク標準アーキテクチャ 8.4 その他のアーキテクチャ 第9章 PSR コーディングガイドライン 9.1 PSRの全体像 9.2 PSR-0 オートローディング規約 9.3 PSR-1 基本コーディング規約 9.4 PSR-2 コーディングスタイルガイド 9.5 PSR-3 Logger Interface 9.6 PSR-7 HTTP message interfaces 第10章 正規表現 10.1 PHPにおける正規表現とは? 10.2 PCREとは何か? 10.3 デリミタはスラッシュ(/)だけではない 10.4 preg_quoteによる正規表現のエスケープ 10.5 1行モードと複数行モードと終端判定 10.6 最短マッチと最長マッチ 10.7 正規表現は遅い 10.8 日本語(UTF-8)を含めた正規表現 10.9 正規表現は遊びながら覚えよう 第11章 PHPの配列 11.1 (PHP5.4) Short array syntax 11.2 配列の結合方法による違い 11.3 数値配列と連想配列は混在する 11.4 配列と型宣言は相性が悪い 11.5 無名関数は、配列関数で役に立つ 第12章 PHPの判定と比較 12.1 ifで変数を判定するとどうなるのか 12.2 switchで考える、緩やかな比較問題 12.3 厳密な比較 12.4 比較を伴う関数の動きについて 12.5 小数(float)の比較は難しい 12.6 型を意識したアプリケーション開発” 第13章 (PHP7)エラーと例外 13.1 エラー例外(Error) 13.2 ユーザー例外(Exception) 13.3 例外ハンドラとシャットダウンハンドラ 13.4 エラーハンドラ 13.5 例外の追跡にも役立つバックトレースの生成 第14章 PHPが動作するWEBサーバーの構成を知ろう! (※WEBサーバー構成の紹介がメインで、細かい解説ではありません) 14.1 Apache + mod_php 14.2 Nginx + php-fpm 14.3 Nginx + (Apache + mod_php)によるWEB三層アーキテクチャ 14.4 ミドルウェアと連携できることが大事 第15章 静的コード解析 (※静的解析ツールの紹介がメインで、細かい解説ではありません) 15.1 エディタのプラグインを活用する 15.2 ツールとの組み合わせ 15.3 PhpMetrics 15.4 Phan 15.5 phpcs & phpcbf 15.6 phpmd 15.7 Xdebug 15.8 気になったツールを試してみよう 第16章 テンプレートエンジン 16.1 テンプレートエンジンはなぜ使われるのか? 16.2 テンプレートエンジンはどのように動くのか? 16.3 その他のテンプレートエンジン 16.4 どのテンプレートエンジンを使えば良いのか? 第17章 良質なPHP情報を得るには? 17.1 雑誌 17.2 イベント・カンファレンス 17.3 ブログ・Qiita 17.4 本 17.5 カンファレンス動画 17.6 ポッドキャスト あとがき 謝辞 プロフィール 購入者特典 / 主要参考文献 <本書案内サイト> https://www.konosumi.net/entry/2018/09/12/022422 <お知らせ> 50ページ以上の加筆をし、本書を再構成した商業誌版の「レベルアップPHP」があります。今後はそちらをお求めください。 https://nextpublishing.jp/book/10605.html