Shin x Blog

PHPをメインにWebシステムを開発してます。Webシステム開発チームの技術サポートも行っています。

WordPress Way を知る本 「エンジニアのための WordPress 開発入門」

著者の杉田さんに献本して頂いたので拝読しました。

エンジニアのためのWordPress開発入門 (Engineer's Library)

PHP エンジニアのための WordPress 本

タイトルにあるとおり、普段フレームワークなどを使って Web システムを開発している PHP エンジニアのための WordPress 本です。

ユーザとして WordPress を利用するのではなく、PHP エンジニアとしてどのように扱うのか、どのように付き合うのか視点で書かれているので、興味深く読むことができました。

序盤で、おおっと思ったのが、第 2 章です。WordPress のインストールにの次に紹介されているのが、いきなり、WP_DEBUG をはじめとしたデバッグモードに関する定数、Debug Bar プラグイン、コマンドラインツールの WP-CLI、そして開発用仮想環境を構築する VCCW という流れになっています。

PHP エンジニアが、WordPress を触るための環境構築といった感じで、このあたりからも誰に向けた本なのかが分かります。

個人的には、さらに PhpStorm 上で WordPress を触るための設定などに進んでいくと、グッときますね :)

第5章 WordPress の基本アーキテクチャ

本書のキモとなるのは、第5章の「WordPressの基本アーキテクチャ」でしょう。

WordPress のファイル構成、データ構成(データベーステーブル)、基本処理の流れ、HTTP リクエストパラメータの扱い、フックの仕組みなどベースとなるアーキテクチャが解説されています。

これらを知らずとも WordPress は利用できまずが、ブラックボックスとして扱うより、基本的な流れを把握して利用すれば動作を想像することができ、問題解決やプラグインによる拡張を行う際に大きな助けとなるでしょう。

まず、この章を読んで全体を把握してから、知りたい箇所を各章で補っていくのが良さそうですね。

WordPress と向き合うための本

WordPress は、歴史の長いプロダクトのため、現在行われている PHP 開発とは異なる流儀でコードが実装されています。

コードを読んだ人がまず感じることが、まさに本文に書かれています。

ところが、率直のところ、WordPress のソースコードは美しいとはとても言えません。重要なメソッドや関数が恐ろしいほどの行数だったり、驚くほどたくさんのグローバル変数が定義されていたりします。

こうした WordPress のコードを見た時に感じた違和感をはっきりと明言しておき、それを前提としてどう向き合うのかという視点が本書のユニークなところです。

これは本書に随所で見られる視点で、WP_Query が 4,000 行超あることが書かれていたり、サンプルコードに global キーワードがあったり、グローバル変数一覧がまとめられていたりします。

「言いたいことは分かった。ただ、WordPress のコードを向き合うなら、こうしよう。」

と言ってくれているような気がします。

さいごに

「郷に入っては郷に従え」というのは、フレームワークでも言語でもプラットフォームでも良く言われていることです。

WordPress で開発するなら、まずは WordPress Way に従うのが良い方法で、本書にはその方法がまとめられています。WordPress Way を知るには大きな足がかりになる貴重な本です。*1

開発で WordPress を活用する人はもちろんのこと、WordPress の内部構造や動きに興味がある方にもおすすめです。

エンジニアのためのWordPress開発入門 (Engineer's Library)

エンジニアのためのWordPress開発入門 (Engineer's Library)

  • 作者: 野島祐慈,菱川拓郎,杉田知至,細谷崇,枢木くっくる
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/01/26
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

*1:個人的には、WordPress はブラックボックスにして、WP REST API で触るというのも面白いと思いますが、その視点でも本書は役立ちます。