めのん@ひとりプログラミング同好会

このブログはすべてフィクションであり、実在の人物、団体とは一切関係ありません

PHPのソースコードを読み始めました!

こんにちは、めのんです!

週末はすっかりOpenSiv3Dの話題ばかりになってしまいました。 平日はいつも通りPHPの勉強と雑談を書いていきたいと思っています。

さて、PHPという言語そのものについての勉強はおおむね終わりかけていて、言語仕様に関しても細部を除けばわかるようになりました。 あとはライブラリの使い方ですが、これは必要になるたびにリファレンスを見ながらやるしかないかな、と思っています。

あとはフレームワークなんですが、いろいろ考えた結果、私がやりたいことを実現する程度であれば、むしろフレームワークを作らない、または自分で簡易的なフレームワークを作る方がいいんじゃないかという気がしてきました。 いずれ以前から予定していたCakePHPも勉強すると思いますが、ちょっと優先度を下げることにします。

余談ですが、優先度と優先順位という用語の使い分けがちゃんとできていないと結構な違和感があります。 きっとμITRONのやり過ぎでしょうね💦

というわけで、これからのPHPの勉強をどうしようかな? と考えた結果、やはり自分が使う言語のことはちゃんと知っておきたいので、PHPソースコードを読むことにしました。

早速ソースコードをダウンロードして展開してみたのですが、予想通りたくさんありますねー。 ちなみにバージョンは7.4.7です。

常套手段として、最初はmain関数を探すところから始めます。 Apacheのモジュールとして動かす場合なんかはもしかしたらmain関数がないのかもしれませんけど、CGICLIならmain関数はあるはずですからね。

で、実際に検索してみたところ、main関数がたくさん現れます。 予想していたCGICLIのmain関数ももちろん見つかったんですけど、extの中にもmain関数がいくつも見つかって、はやくも???の状態です。

とりあえずわかりやすいだろうと思って、sapi/cli/php_cli.cの中のmain関数から手を付けることにしました。

ちょっと意外だったのは、ここにWinMainも並んでいたことです。 てっきりWindows依存部にあると思ってたんですけど。

のっけからプラットフォーム依存の#ifが大量に出てきてかなり読みづらいですよ。 まっ、落ち着いて読んでいけばそんなに難しいことはやっていないようなので(今のところは)、時間を掛ければ何とかなるんじゃないかなと、今は楽観的に考えています。

今夜の投稿では何を書くかまだ考えていないので、夕食までに考えることにします。

それでは!!