Skip to content
Ryo Tomidokoro edited this page Jun 15, 2021 · 27 revisions

影PHP勉強会Wiki

現在の目的

PHP本体のソースコードを、誰もが読んで理解することが出来るようにすることが目的です。 (終了しました)
PHP実行の仕組みを理解し、IOモデルを理解し、Swooleを完全に理解する

概要

PHPそれ自体は、C言語で書かれています。私達が普段使っているPHPはC言語で書かれたPHPのソースコードがコンパイルされて出来たものです。

C言語は、高級言語ではなく高級アセンブラ」と言われたりもします。

PHPで書かれたソースコードは、PHPStormやVSCode、Vim、Emacsなどのエディタを使うことで比較的に楽に読んでいくことが出来ます。しかし、C言語で書かれたPHP本体のソースコードは、コンピューターを直接的に操作する記述が多く、PHPに比べて抽象度が低いため、どうしても記述が冗長で複雑になっています。

そのため、C言語をそのままテキストとして読むと、理解するのが難しいことが多く、とにかく時間がかかります。PHPのソースコードを読み始めた初期の頃は、とにかく分かりにくくても読み続けるという行動を取りました。とても効率が悪いです。

そこで本Wikiでは、「PHPのソースコードを、デバッガーを使ってステップ実行しながら読む手順を紹介」することで、PHPのソースコードを効率よく読み解いていく方法を記述します。

手順

本手順に従うことで、PHP-FPMで実行される場合のステップ実行、php-cliで実行される場合のステップ実行が行えるようになります。

  1. PHPソースコードを読む環境
  2. デバッグ用のPHPソースコードコンパイル
  3. 読み始める前に必要な事前知識
  4. GNU Debuggerを使ったデバッグ実行方法

コンテナを使ったお手軽手順

VSCodeとデバッグ用コンテナを使った簡単手順

参考情報

Slides & Blogs

ブラウザから楽々読めるPHPソースコード(GNU GLOBALSを利用)

ソースリーディングに役立つ基本知識