ホームページ >バックエンド開発 >PHPチュートリアル >C++ から移行しましたが、PHP の初期化はどこで行われますか?プログラムの初回起動時に設定データを読み込む必要があるということでしょうか?
たとえば、C++ には main 関数があり、起動時の初期化や構成テーブルの読み取りなどを行うことができます。これを行う必要があるのは 1 回だけです。
次に、PHP を使用してサーバーを記述します。どこに追加する必要がありますか。これと同じような機能?ありがとう!
プログラムに直接入力してください!
プログラムに直接入れてください!
それを当たり前のことだと思わないでください!
C++ で書かれた 2 つのアプリケーションを実行するとき、main 関数は 1 回だけ実行されますか?
当たり前のことだと思わないでください!
C++ で書かれた 2 つのアプリケーションを実行するとき、main 関数は 1 回だけ実行されますか?
プログラムに直接入れてください!
プログラムに直接参加してください!
1. 設定に関しては、より有名な PHP 開発フレームワークと既存の PHP オープン ソース プログラムを学ぶことができます。これらのフレームワークは初期化設定で適切に機能します。 2. C/S アーキテクチャから B/S アーキテクチャへの変換がより困難な概念は、Web バックエンド プログラムの生存サイクルです。C++ を使用している場合、Web バックエンドには無限の機能がないことがわかります。 While(true) のようなループやブロックを使用すると、実行後にインスタンスが破棄されます。実行ステータス情報や実行結果などを残しておきたい場合は、実行結果を特別な一時ファイル [セッション] に保存することしかできません。この一時ファイルは特定の時点で保存されます(設定できますが、設定しない場合は通常ブラウザを閉じます)。破棄されなければ、このプログラムを再度開くと、実行中のファイルを読み取ることができます。この一時ファイルを開いてその時点のステータスを確認し、この時点で再度実行を続行します。
3. Web バックエンド プログラムには通常、優れたユーザー エクスペリエンスを実現するためにタイムアウト制限があるため、while(true) のような無限ループは発生しません。
PHP プログラムは C++ デスクトップ プログラムと同じで、起動するたびに環境を初期化する必要があります
これは理解できるはずです。
いわゆるサービス プログラムは、メモリ内に常駐するプログラムです。初期化は 1 回だけ行う必要があるように思えますが、そうではありません。2 つのサービス プログラムを開始した場合 (もちろん、プログラムは競合しないように設計する必要があります)、それぞれのプログラムを完了する必要があります。 php はサーバー側のスクリプトであり、Web サーバーが起動するため、メモリには常駐しません。
そのため、すべての呼び出しはプログラム内で直接初期化する必要があります
!
しかし、Web アクセスごとに、サーバー側の対応する PHP が 1 回実行されるのではないでしょうか?毎回リソースを読み込むプログラムではないでしょうか? ? PHP に起動する MAIN 関数がない場合は、グローバル変数クラスを作成し、このクラス内のリソースを読み取りたいと考えています。このグローバル変数は一度だけ実行する必要がありますよね?
そうですね、その通りです。これら 2 つのアーキテクチャのライフサイクルは異なります。私はまだそれを変更していません。
PHP プログラムは C++ デスクトップ プログラムと同じで、起動するたびに環境を初期化する必要があります
これは理解できるはずです。
いわゆるサービス プログラムは、メモリ内に常駐するプログラムです。初期化は 1 回だけ行う必要があるように思えますが、そうではありません。2 つのサービス プログラムを開始した場合 (もちろん、プログラムは競合しないように設計する必要があります)、それぞれのプログラムを完了する必要があります。 php はサーバー側のスクリプトであり、Web サーバーが起動するため、メモリには常駐しません。
だから呼び出されるたびに初期化する必要があるのですね
わかりました。つまり、PHPは呼び出されるだけ(例えばユーザーが一度訪問する)だけで、呼び出された後は破棄されてしまいますよね?
1. 設定に関しては、より有名な PHP 開発フレームワークと既存の PHP オープン ソース プログラムを学ぶことができます。これらのフレームワークは初期化で適切に機能します。構成は良い。 2. C/S アーキテクチャから B/S アーキテクチャへの変換がより困難な概念は、Web バックエンド プログラムの生存サイクルです。C++ を使用している場合、Web バックエンドには無限の機能がないことがわかります。 While(true) のようなループやブロックを使用すると、実行後にインスタンスが破棄されます。実行ステータス情報や実行結果などを残しておきたい場合は、実行結果を特別な一時ファイル [セッション] に保存することしかできません。この一時ファイルは[設定できますが、設定しない場合は通常ブラウザを閉じます]が破棄されますが、破棄されていない場合は再度プログラムを開くと開くことでその時の実行状況を確認することができます。この一時ファイルを保存し、この時点でもう一度実行を続行します。
3. Web バックエンド プログラムには通常、優れたユーザー エクスペリエンスを実現するためにタイムアウト制限があるため、while(true) のような無限ループは発生しません。
そうですね、その通りです。これら 2 つのアーキテクチャのライフサイクルは異なります。私はまだそれを変更していません。
決断力があり、わかりやすく、要点を押さえています。
1. 設定に関しては、より有名な PHP 開発フレームワークと既存の PHP オープン ソース プログラムを学ぶことができます。これらのフレームワークは、初期化設定で適切に機能します。 2. C/S アーキテクチャから B/S アーキテクチャへの変換がより困難な概念は、Web バックエンド プログラムの生存サイクルです。C++ を使用している場合、Web バックエンドには無限の機能がないことがわかります。 While(true) のようなループやブロックを使用すると、実行後にインスタンスが破棄されます。実行ステータス情報や実行結果などを残しておきたい場合は、実行結果を特別な一時ファイル [セッション] に保存することしかできません。この一時ファイルは[設定できますが、設定しない場合は通常ブラウザを閉じます]が破棄されますが、破棄されていない場合は再度プログラムを開くと開くことでその時の実行状況を確認することができます。この一時ファイルを保存し、この時点でもう一度実行を続行します。
3. Web バックエンド プログラムには通常、優れたユーザー エクスペリエンスを実現するためにタイムアウト制限があるため、while(true) のような無限ループは発生しません。
そうですね、その通りです。これら 2 つのアーキテクチャのライフサイクルは異なります。私はまだそれを変更していません。
1. 設定に関しては、より有名な PHP 開発フレームワークと既存の PHP オープン ソース プログラムを学ぶことができます。これらのフレームワークは初期設定で適切に機能します。 2. C/S アーキテクチャから B/S アーキテクチャへの変換がより困難な概念は、Web バックエンド プログラムの生存サイクルです。C++ を使用している場合、Web バックエンドには無限の機能がないことがわかります。 While(true) のようなループやブロックを使用すると、実行後にインスタンスが破棄されます。実行ステータス情報や実行結果などを残しておきたい場合は、実行結果を特別な一時ファイル [セッション] に保存することしかできません。この一時ファイルは[設定できますが、設定しない場合は通常ブラウザを閉じます]が破棄されますが、破棄されていない場合は再度プログラムを開くと開くことでその時の実行状況を確認することができます。この一時ファイルを保存し、この時点でもう一度実行を続行します。
3. Web バックエンド プログラムには通常、優れたユーザー エクスペリエンスを実現するためにタイムアウト制限があるため、while(true) のような無限ループは発生しません。
そうですね、その通りです。これら 2 つのアーキテクチャのライフサイクルは異なります。私はまだそれを変更していません。
それでは、B/S アーキテクチャの場合、グローバルに一意であり、初期化が一度だけ必要なものはどこに配置すべきでしょうか?セッションって、同じユーザーを一つの単位として考えないといけないですよね?
グローバルに一意で、一度だけ初期化されるものは何なのか教えてください。
例えば、冒頭で言った構成表。この構成テーブルは MYSQL にあります。この割り当てテーブルはすべてのユーザーが利用できます。
今の話で、PHPは「一度使うと終わって、次に使うとまた始まる」ということが分かりましたので、この設定コード(MYSQLに問い合わせて調整する)をPHPで書くと、 、その後、ユーザーがアクセスするたびに PHP コードを毎回 1 回実行する必要があります。
したがって、C++ の C/S アーキテクチャでは、S 側で開始すると、MAIN 関数があり、その後、設定コードが MAIN 関数内で 1 回実行され、設定がサーバーのメモリにインポートされます。他のユーザーがローカルで呼び出すだけです。
ということで、こんな投稿をしました〜 ということは、キャッシュか何かでしかできないということですか?