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

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

本格的にPHPの勉強を始めました!

こんばんは、めのんです!

私は以前からプログラマーだったんですが、主にCを使ったマイコンなどのプログラミングをやっています。 Web開発については素人なのでこれまで「駆け出しエンジニア」を名乗ってきましたが、そろそろ卒業にして、これからは「PHP猛勉強中!!」をキャッチコピーにしました。

f:id:elddiry:20200623231516j:plain

以前はPHPといえばWordPressをちょっと触るぐらいだったので、それがPHPかどうかさえよくわかってなかったんです。 いつまでもそんな状態じゃよくないですよね。 これからはしっかり勉強して堂々と「PHPプログラマー」を名乗れるようになりたいと思います!

ちょっと横道にそれますが、最近はZigというプログラミング言語も勉強しています。 Zigを始めたとき、最初に調べたのはCとの連携方法でした。 これは私の本業に導入するためにはどうしても必要なことだからです。

PHPを学習するにあたっても、やはりCとの連携方法を最初に調査しました。 私が調べた範囲では、次のような方法があるようです。

  1. PHP extensionを作成する
  2. 独立したプロセスとして実行してプロセス間通信を行う
  3. FFI(Foreign function interface)を用いて連携する

このうち2.については、子プロセスとして呼び出してパイプで接続するとか、全然別のプロセスとして立ち上げておいてソケットで接続するとか、そういう方法を想定しています。 共有メモリなど、別の方法も使えるんしょうか? よくわかっていません。

その他の方法については、PHPの下請けとしてCを呼び出すやり方です。 子プロセスとして呼び出すのも同じです。

私がやりたいのは、あくまでも主役はCで書いたプログラムで、それにPHPで書いたWebインタフェースをUIのひとつとして搭載することです。 もし仮にPHPのプログラムがハングアップしても、主役であるCプログラムは守らないといけません。

そう考えると、完全に独立したプロセスとしてCのプログラムを起動しておいて、ソケット等でPHPのプログラムとプロセス間通信を行うのがよさそうです。

もちろん、場合によってはPHPから下請けとしてCのプログラムを呼び出すことも必要になるときがあると思います。 ですので、先ほどの3つは一通り勉強したいと思います。

進捗状況はこのブログでもお知らせしていきたいと思いますので、応援してくださると泣いて喜びます。

それでは!!