web-dev-qa-db-ja.com

ダウンロード可能なファイルをその場で作成するときにWP_Filesystemを使用する必要がありますか?

ボタンがクリックされたときにダウンロード可能なCSVをその場で作成する方法があります。

header( 'Content-type: text/csv' );
header( 'Cache-Control: no-store, no-cache' );
header( 'Content-Disposition: attachment; filename="email_list.csv"' );

$outstream = fopen( 'php://output', 'w' );

fputcsv( $outstream, $csv->header );

foreach ( $csv->rows as $row ) {
    fputcsv( $outstream, $row );
}

fclose( $outstream );

exit();

PHP Code Snifferを使用してクラスファイルを実行すると、次のような警告が表示されます。

 63 | WARNING | File operations should use WP_Filesystem methods instead of
    |         | direct PHP filesystem calls. Found: fopen()
 71 | WARNING | File operations should use WP_Filesystem methods instead of
    |         | direct PHP filesystem calls. Found: fclose()

私が理解しているように、サーバー上のファイルを扱うときはWP_Filesystemが必要です。上記の例のように、ダウンロード可能なファイルをその場で作成するときに必要かどうかを知りたいです。もしそうなら、なぜ?

5
user3574603

いいえ.

コードスニファはPHPコードの非常に単純化された解析を処理する限定的なユーティリティであり、コンテキストに関する知識はほとんどないことに注意してください。そのため、あなたはそれを諮問として使うべきであり、コードの質に関する「真実の源」としてではなく、あなたのコードの一部に二番目の考えを与えるようにあなたに指示するべきです。

コードが適切であると判断したら、スニファが提供する方法の1つを使用してエラー生成を "マスク"してください。そうすれば、常にあなたを悩ませたり、他の問題を隠したりすることはありません。

2
Mark Kaplun