開発時にはできるだけエラー・警告のたぐいを表示させるように設定した上で進めていき、一切のエラー・警告を出さないコーディングを心掛ける。
そして運用時にはエラー・警告のたぐいを表示させない設定にする。
でもそのつもりが、よく最後に運用時設定にしておくのを忘れることしばしば
で、考えたですよ。
設定忘れない方法がないものかと・・・
そこで思いついたのが、エラー・警告の表示フラグが立っていれば、開発モードと判断して常に「error_reporting」のようなそれと分かる文字を表示させるというもの。
つまりこのようになる。
ザクっとこんな感じになる。
これなら忘れまい。
設定切り替えも一箇所だけなので楽なのさ
このように自分が開発しやすくなる為ならなんだってしていい。
禁じ手なんてない、自由なのさ
error_reportingはいろいろな場所で設定されている可能性がある。
・php.iniのようなPHP設定ファイル
・Apache設定ファイル.htaccess
・PHPソースコード
これらのうちどこで設定されていても対応できて知らせてくれる
error_reportingの設定で以前はよく「E_ALL」だったり「E_ALL | E_STRICT」だったりを書いたりしてたけど、全表示させるなら「-1」とするのがスマートなやり方になる。
将来新しい定数が加わっても、こうしておけばエラー、警告、古新聞、古雑誌、ボロぎれ、バッテリーなど、、出せるものはなんでも出してくれるのでお奨め。
禁じ手なんてない、自由に使っていいと言い放ったついでに他の手法も考えてみる。
のように開発モードのフラグを単に「1」に設定していたのでは面白みがないしもったいない。
そこでこう設定してみる。
そうすれば処理の最後に再びmicrotime()値を取得して実行にかかった時間を得ることができる。
これで実行にどれくらいかかっているかを常に確認できる。
別の使い方を考えてみる。
開発時にデバッグ情報を見ることができる人を制限する。
表向きは通常通り運用しながら、裏で機能追加などの開発を進めていくのに使えそうだ。
そして運用時にはエラー・警告のたぐいを表示させない設定にする。
でもそのつもりが、よく最後に運用時設定にしておくのを忘れることしばしば
で、考えたですよ。
設定忘れない方法がないものかと・・・
そこで思いついたのが、エラー・警告の表示フラグが立っていれば、開発モードと判断して常に「error_reporting」のようなそれと分かる文字を表示させるというもの。
つまりこのようになる。
<?php
if (1) { // 設定切り替え 0 or 1
ini_set("display_errors" , 1);
ini_set("error_reporting", -1);
} else {
ini_set("display_errors" , 0);
ini_set("error_reporting", 0);
}
if (error_reporting() === 0) { //フラグ立ってなければ
define("DEBUG", 0); // 運用モード
} else {
define("DEBUG", 1); // 開発モード
}
// 開発モードの間、表示させ続ける
if (DEBUG) {
echo "error_reporting";
}
ザクっとこんな感じになる。
これなら忘れまい。
設定切り替えも一箇所だけなので楽なのさ
このように自分が開発しやすくなる為ならなんだってしていい。
禁じ手なんてない、自由なのさ
error_reportingはいろいろな場所で設定されている可能性がある。
・php.iniのようなPHP設定ファイル
・Apache設定ファイル.htaccess
・PHPソースコード
これらのうちどこで設定されていても対応できて知らせてくれる
error_reportingの設定で以前はよく「E_ALL」だったり「E_ALL | E_STRICT」だったりを書いたりしてたけど、全表示させるなら「-1」とするのがスマートなやり方になる。
将来新しい定数が加わっても、こうしておけばエラー、警告、古新聞、古雑誌、ボロぎれ、バッテリーなど、、出せるものはなんでも出してくれるのでお奨め。
禁じ手なんてない、自由に使っていいと言い放ったついでに他の手法も考えてみる。
define("DEBUG", 1);
のように開発モードのフラグを単に「1」に設定していたのでは面白みがないしもったいない。
そこでこう設定してみる。
define("DEBUG", microtime());
そうすれば処理の最後に再びmicrotime()値を取得して実行にかかった時間を得ることができる。
// 開発モード設定
define("DEBUG", microtime());
// 開発時だけ実行時間を表示させる
if (DEBUG) {
list($start_micro, $start_sec) = explode(" ", DEBUG);
list($end_micro, $end_sec) = explode(" ", microtime());
echo "実行にかかった時間:";
echo (($end_sec - $start_sec) + ($end_micro - $start_micro));
echo "sec";
}
これで実行にどれくらいかかっているかを常に確認できる。
別の使い方を考えてみる。
開発時にデバッグ情報を見ることができる人を制限する。
// 開発モード設定
define("DEBUG", "192.168.0.1,192.168.0.2");
if (in_array($_SERVER['REMOTE_ADDR'], explode(',', DEBUG))) {
// 開発者たちの回線だけに見せる情報をここに書く
}
表向きは通常通り運用しながら、裏で機能追加などの開発を進めていくのに使えそうだ。


