2022年5月3日火曜日

PHPから読み込むiniファイルでハマる

色々とテコ入れしているので影響範囲が大きかったりします。

各環境で仕様で吸収できない部分を仕方なしにiniファイルを使って設定しています。

できる限り最小限にすべく、一つのiniにしています。

iniにしている理由はPHPでiniファイルがそのまま扱えたというのが経緯だったりするのですが、PHP7.0以降なんか条件が無駄に厳しくなっていって変な方向に行っているので捨ててもいいのかも。

ローカル仕様なら仕様を単純にすることができるので、外的仕様による余計な時間を取られなくなるので。そもそもiniファイルにそんな難しい仕様を盛り込むべきじゃない。

と、今回ハマったのは、テコ入れしてていつの間にか温度ログを表示しているグラフがモノクロ表示になってしまったことが始まりでした。

最初はLinuxバージョンを上げた影響か、メモリ不足が原因かと思ってたのですが、どうも原因がはっきりせず、もしくはaptでインストールされているパッケージ特有のバグかとも思ったのですが、よくわからず。パッケージもインストールされているし、不足してそうなライブラリもなかった。そもそも作業前はちゃんとカラーになってたし。

気を取り直してapatchのログを見てみると、errorログ内に大量にphpのエラー表示が。

エラーは特定の一つの行でPHP Notice:  Undefined indexというメッセージ。

ソースを見てもエラーとなりそうじゃないので、早速デバッグ用にスクリプトを入れてターミナルから直接実行してみると、該当の配列が見事に空っぽ。へ?w

何度か実行し一番最初に見かけないエラーがあるのに気づきました。

PHP Warning:  syntax error, unexpected '=' in /etc/xxxxxxx.ini on line 41
 in /home/htdocs/graph_temperature.php on line 117 

iniファイルに無効な=が…ってありますよ。確かに。文法的にはエラーだろうけど、iniファイル的にはオッケーなんじゃないかな…普通…

仕方がないので、ダブルコーテーションで括ってやり過ごしましたが、実際使う側でも不要な処理が増えてしまいました。

無事グラフも元通りに。つ、つかれた…。

0 件のコメント:

コメントを投稿