本番運用後の var_dump() と exit; の削除と error_log() 方式への切り替え
開発やテストで var_dump() と exit; を使って出力内容を確認したら、以下のタイミングで必ずコードを掃除してください。
- プラグインの機能検証が完了し、6文字の原因が特定できた直後
- ステージング環境で最終リグレッションテストが終わったタイミング
- 本番環境へのデプロイ直前
具体的には、プラグインファイル内の
register_activation_hook(__FILE__, 'my_plugin_activate');
function my_plugin_activate(){
$output = ob_get_clean();
var_dump($output);
exit;
}
この部分を丸ごと削除し、以下のように error_log() のみを残します。
// デバッグ用 activation hook は削除済み
add_action('plugins_loaded', function(){
$output = ob_get_clean();
error_log('Unexpected output ('. strlen($output) .' bytes): [' . $output . ']');
}, 0);
こうすることで、開発中以外は var_dump() や exit が画面を止めることなく、エラーログへの記録だけが行われます。
register_activation_hook() の後片付け
register_activation_hook() は「プラグインを有効化した瞬間だけ」実行される仕組みです。デバッグ用途以外に使わないなら、本番環境では次のいずれかを行いましょう。
- フックごとコメントアウトまたは削除して、無駄なコードを残さない
- 有効化時に本来必要な処理(初回オプション設定など)がある場合は、デバッグコードを除去してそのロジックだけ残す
タイミングはデバッグ完了直後、ステージング環境で問題がなければすぐに反映し、本番環境へデプロイする前に必ず実施してください。
まとめ
- 6文字出力の原因特定が終わったら var_dump() と exit; を削除
- error_log() 方式でログだけ残すコードに切り替え
- register_activation_hook() もデバッグ用途なら削除または必要最小限の処理だけ残す
- ステージングで動作確認後、本番環境へデプロイ
この流れを守ることで、不要なデバッグコードを本番に混入させず、安定した運用ができるようになります。
コメント