I’ve seen many requests, on how to run PHP in Node.js. あるリクエストは、PHP で簡単にできることと同じことを Node.js で行う方法がわからないというもので、他のリクエストは PHP でのみプログラミングする他のチームと一緒に作業する必要があるというものでした。 これは事実上不正確です。 PHP はコマンドラインで実行できますし、Node.js はコマンドラインから簡単にプログラムを実行できるので、非常に可能性があります。

  • 異なる知識を持つチーム間でのコラボレーションが容易
  • PHP は高速なスクリプトをまとめるのが得意
  • Node.js と PHP が必要な場合に複数のサーバーを実行する必要がない

欠点は何でしょうか?

  • セキュリティ侵害の可能性が高くなる
  • パフォーマンスがあまり良くない
  • 自分の足を撃つのが簡単
  • すでにPHPを知っていてnodeを学ぶ場合、おそらく「難しい」ことをPHPでプログラミングする傾向があり、nodeのやり方を学ばないことが多いでしょう。

もちろん、もっと多くの欠点や利点があると思いますが、それらについてコメントでお聞かせください。 完全な解決策ではありません。 476>

Let’s get started

Node をインストールする方法については省略させていただきます。

最初にすべきことは、PHP をインストールすることです (まだインストールしていない場合)。
http://php.net/manual/en/install.phpにある標準の指示に従うだけで、うまくいくはずです。

npm install express – save

ここで、プロジェクトの最初のファイルとなる webserver.js を見てみましょう。 以前 Express を使用したことがある場合、この例のほとんどが何を行うか既にご存知でしょう。

以前に見たことがないものは、PHP の解析を行う “execphp.js” の必要性です。php のリクエストを受け取り、execPHP クラスを通して実行します。

Note: Change the variable execPHP.phpFolder to wherever you want to put your own php files.

それでは、プロジェクトの 2 番目のファイルである “execphp.js” を見てみましょう。 このメソッドは基本的にファイルを受け取り、コマンドラインの PHP を実行し、渡されたコールバックを結果とともに呼び出します。

Note: Change the variable this.phpPath to wherever you have PHP installed.

では、簡単な PHP ファイルを作ってみましょう。 これを “test.php” と呼び、”phpfiles” フォルダー (webserver.js で編集したもの) に置きました。

見てわかるように、これは非常に単純な例です。

では、web サーバを実行しましょう。

node – use_strict webserver.phpjs

そして、ブラウザで http://localhost:3000/test.php にアクセスします。

うーん、うまくいけば php ファイルの結果が得られるはずです。

Hello worldA simple counter:
0
1
2
3
4
5
6
7
8
9

さらにいくつかの問題は、読者のための練習として残しておきます。

もしあなたが、編集せずにこのスクリプトだけを使用するなら、すぐに限界に遭遇することでしょう。 たとえば、$_GET, $_REQUEST などは設定されていません。 これを使用したい場合、おそらく Node.js に偽の PHP 変数設定を書かせ、ファイル自体の前にそれを処理することになります。

  • Sanitize the filename to make people write stuff like ../../../evilfile.php to access stuff they shouldn’t.
  • Handle $_GET, $_SERVER, $_REQUEST, .etc in the execPHP class automatically, so they be available in the php scripts.
  • written by Martin Mouritzen.

    (英語)マーティン・モーリッツェン

    コメントを残す

    メールアドレスが公開されることはありません。