独自のRequestIDクラスを生成するPHPに関する内容を説明します。
この記事では、session_create_id() メソッドと uniqid() メソッドを使用して、一意の RequestID クラスを生成する PHP について紹介します。独自性を備え、誰もが学習して使用できる完全なコードとデモンストレーションを提供します。
現在のシステム設計では、通常、分散システムが使用され、リクエストは処理のために複数のマイクロサービスを呼び出し、最終的に結果を返します。リクエストに問題がある場合、どのマイクロサービスに問題があるかを追跡するのは困難です。
各リクエストがサーバーにアクセスするとき、リクエストの開始時、リクエストプロセス中に、このアクセスに 一意の識別子 (RequestID) を追加できます。そして、リクエストの最後に、このリクエストプロセスのキーデータ(アクセス中のパラメータ、渡されたメソッド、マイクロサービス、最後に返されたデータなど)をログに書き込みます。これらのデータは使用できます。アクセスに問題が発生した場合に参照して、問題の追跡を容易にします。
たとえば、リクエストは出力を返す前にいくつかのマイクロサービスを通過する必要があります
Request->A->B->C-A->Output
アクセス処理中に出力がない場合、または出力にエラーがある場合は、RequestID に基づいて A、B、C に対応するログを検索し、どのサービスに問題があるかを確認できます。
RequestID.class.php#<?php/**
* PHP生成唯一RequestID类
* Date: 2018-04-10
* Author: fdipzone
* Version: 1.0
*
* Description:
* PHP实现生成唯一RequestID类,使用session_create_id()与uniqid()方法实现,保证唯一性。
*
* Func:
* public generate 生成唯一请求id
* private format 格式化请求id
*/class RequestID{ // class start
/**
* 生成唯一请求id
* @return String
*/
public static function generate(){
// 使用session_create_id()方法创建前缀
$prefix = session_create_id(date('YmdHis')); // 使用uniqid()方法创建唯一id
$request_id = strtoupper(md5(uniqid($prefix, true))); // 格式化请求id
return self::format($request_id);
} /**
* 格式化请求id
* @param String $request_id 请求id
* @param Array $format 格式
* @return String
*/
private static function format($request_id, $format='8,4,4,4,12'){
$tmp = array(); $offset = 0; $cut = explode(',', $format); // 根据设定格式化
if($cut){ foreach($cut as $v){ $tmp[] = substr($request_id, $offset, $v); $offset += $v;
}
} // 加入剩余部分
if($offset<strlen($request_id)){ $tmp[] = substr($request_id, $offset);
} return implode('-', $tmp);
}
} // class end?>
<?phprequire 'RequestID.class.php';// 生成10个请求idfor($i=0; $i<10; $i++){ echo RequestID::generate().PHP_EOL;
}?>
16532925-4502-CDAD-23A2-463FC7B5803A500B77AD-CD24-0DDA-9E6E-2FDF2DD7CA94813143D0-958F-9F56-E04F-679598594452E5EE1B0B-E0D6-3E60-D831-462C5A262FCE79E714B5-A37F-4B5E-4EDE-83E18391EBF9 E1C440AB-FC2C-AC74-E79A-016FD59D9651 AE483861-1040-BE8D-E523-D7638D0F0D35BBD7A03A-36C9-24B7-C453-FB1DDD6E201EBF62C3E6-9C5F-22CB-668D-381863B35268 E97E1F44-F048-962A-5BF7-1113727551B1
メソッドには
php7.1が必要です 上記バージョンのみ使用可能です。 この記事では、PHP による独自の RequestID クラスの生成に関する内容について説明します。関連知識については、php の中国語 Web サイトを参照してください。
PHP によってカプセル化されたシングルトン モードの MySQL 操作クラスの詳細な説明
PDO 接続データベースの関連コンテンツの php での解釈
以上が独自のRequestIDクラスを生成するPHPに関する内容を説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
