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 変数設定を書かせ、ファイル自体の前にそれを処理することになります。
written by Martin Mouritzen.
(英語)マーティン・モーリッツェン