ホームページ >バックエンド開発 >PHPチュートリアル >PHP Webサーバーのランダムな考え
最近友人と相談したのですが、それはPHPをWebサーバーとして使うというもので、当初の目的はシステムの効率を根本的に改善することでした。
これを行う最初の理由は、PHP アプリケーションのリクエストごとに一連のリソースが初期化され、リクエストが終了するとこれらのリソースが解放されるためです。問題は明らかであり、初期化と解放を繰り返してシステム リソースを浪費するリソースがいくつかあるはずです。
PHPをサーバーとして使用する方法は、PHPの1つのリクエスト処理の中ですべてのリクエストを見つけ出し、無限ループを作り、リクエストされたリソースを解析し、対応する関数にルーティングするという部分的なアプリケーションとして理解できます。ここでは、リソースを 2 つのカテゴリに分けます。1 つはアプリ アプリケーション フレームワークのリソースで、もう 1 つはリクエストごとに独立したリソースです。 PHP の Web サーバーのリソース管理は完全に PHP スクリプトで実装されており、通常の apache+mod_php5 よりも効率が高くなります。欠点は、アプリケーションに機能を追加するときに非常に制限されることです。関数 (関数変数内の部分関数) への変換、変数の命名に注意するなど、PHP コーディングの要件は比較的高くなります。
このアプローチはいくつかの側面から検討されるべきだと思います。
まず、大きな観点から見ると、PHP スクリプトレベルでサーバーを実行することは、PHP の「自然回帰」の現れです。個人的には、Zend はコード作成を簡素化し、オープンソースに慣れるために、毎回リソースの初期化と解放に多くの作業を行ってきました。 MySql を使えば、迅速かつ効率的なアプリケーション開発が世界中で人気です。しかし、まさにこの理由から、データの検索と並べ替えはデータベースによって完了されるため、プログラマーはメモリやデータ構造を気にしなくなりました。一時期、PHP は草の根とさえ呼ばれていましたが、これには理由がないわけではありません。
小さな観点から見ると、これの利点は、小さな領域でシステムの効率を大幅に向上させ、多くのリソースを節約できることです。コーディングの習慣を少し変えるだけであれば、それでも良いアイデアです。社内に導入するかどうかを選択する必要があり、新しい効率的なアプリケーションを追加するための開始点は比較的低いです。
普通に考えれば、PHPの起動フェーズでフレームワークモジュールを開発し、リクエストごとにフレームワークの一部のリソースを繰り返し初期化する必要がありますが、デメリットとしては、まずC言語を使ってフレームワークを開発する必要があります。拡張コストは比較的高いです。この欠点については、実はかなり前から、リソースを効率的に再利用するために、リクエストされたリソースをグローバルに登録できる拡張機能の開発を検討し始めていました。要求されたリソースを再利用したい場合は、zend のソース コードを拡張するだけでなく変更を加える必要があり、コストが増加します。
一般に、ことわざにあるように、効率とコストは同時に存在することはできません。高効率を達成するためにソリューションを実装するには、自分の状況を考慮するのが合理的です。なぜなら、存在するものは合理的であるからです。