PHPを実装して実行中に結果を出力する方法

開発プロセスでは、バッチ処理が必要になることがよくあります。たとえば、データの同期やフォーマット変換では、大規模なデータ処理が必要になることがよくあります。データ量が多いため、データにさまざまな差異が存在することが多く、実行プロセスが困難になりがちです。実行プロセス中の各レコードの実行ステータス (成功または失敗、失敗の理由、例外の原因となった元のデータ情報) をリアルタイムに出力することは、問題のトラブルシューティングに非常に役立ちます。ここでは 2 つの簡単なカプセル化方法を紹介します。私はこれが便利だと思っていますし、あなたにも役立つことを願っています。

最初に簡単に説明します。最初の方法は、リアルタイムで出力する必要があるメソッドの先頭で呼び出す方法です。2 番目の方法は、コンテンツを出力する必要があるときに呼び出す方法です。たとえば、次のようになります。

public function testApi(){
    
    
	Tools::realTimeOutputPrepare();
	$i = 1;
	while($i < 100){
    
    
		sleep(1);
 		Tools::realTimeOutput($i++);
	}
    die;
}

これら 2 つのメソッドの具体的な内容は次のとおりです。

/**
 * 实时输出内容准备(设置头部)
 */
public static function realTimeOutputPrepare(){
    
    
    header('X-Accel-Buffering: no');
    set_time_limit(0);
    ob_end_clean();
    ob_implicit_flush(1);
}
/**
 * 实时输出内容(清理缓冲区)
 */
public static function realTimeOutput($string){
    
    
    if(is_array($string)){
    
    
        $string = Tools::arrayToJson($string);
    }
    echo $string."<br>";
    flush();
}

今回のメソッドは Tools というツールクラスに静的メソッドとして定義されているので、この 2 つのメソッドを独自のツールクラスに組み込むと非常に便利です。

見えますか?とても簡単です。役に立ったら、忘れずに戻ってきて「いいね」をしてください (笑)

おすすめ

転載: blog.csdn.net/one_and_only4711/article/details/121095949