PHPプログラムを書けるようになり、そろそろ実業務かな?と思ったら、次は、より想定外のことが起きにくい書き方というところに目を向け、学習を進めていくのは如何でしょうか?
例えば、以下の様な物事への配慮を学習してみましょう。
エラーログを確認する癖を付けよう
PHPの記述エラーには、そのまま処理が止まってしまう致命的な物から、「まぁ、処理はできるけど、もうちょっと丁寧に書いた方がいいよ。」というものまで、様々なエラーレベルがあります。致命的な物は不具合として現われるため、絶対に気づきますし対処せざるを得ないのですが、意外と致命的でないエラー(”Notice”エラー)は見逃されることが多いです。
いくら実際の処理に問題が無いからと放置すると、痛い目を見ることがあります。それは、『処理は最後まで実行できるが、実は意図しない値を扱ってしまっている』などの、プログラムではなくて、あなた自身の致命的なミスを誘発する可能性を示しているためです。
Noticeエラーは、処理できるけど書き方が甘いから予期せぬ挙動になる可能性がありますよ。ということを伝えてくれているものですので、こうしたログを見ないと気づかないところに常に学習の種があると心しましょう。
共通化や外部ファイル読み込みに関して配慮しよう
各ページで共通的に行う処理は、何度も何度も書くのが面倒ですし、書き間違える基ですので、別ファイル化・ユーザー関数化して、各ファイルでインクルードするような書き方をするかと思います。
この際に、気にしなければならないことが大きく2つあります。
- 間違って同じファイルを二度読んでしまっていることや、読み込んだファイル同士で関数名がバッティングしてしまっていて不具合を生じてしまうことがあります。
- 手元の開発環境と、アップロードするサーバ上のフォルダパスの違いなどで、読み込み先が違ってしまいエラーを生じることがあります。
ディレクトリ構造に左右されないインクルードパスの書き方、ファイル名や関数名の命名ルールによるバッティングの事前回避といったことも念頭に置いたプログラムを書く必要があります。
データの型を意識しよう
データの型とは、プログラミングにおける値を扱う分類であり、指定した型どおりにデータを扱うよう定義する物です。「整数」「小数」「文字列」「真偽」などいくつかに分かれています。しかし、PHPは、データ型をあまり意識しなくて良い言語です。変数に数値が入れば、そのまま四則演算では勝手にデータ型を数値と判断して計算してくれます。
これが便利なところである一方、原因を特定するのが困難な不具合を招くポイントでもあったりします。
それは、データベースが絡む場合や、外部のプログラムに値を渡すなど、自分で作ったPHP外で動くような場合や、悪意のある値を入れられた場合です。
データには型があるということを意識し、データの用途に合わせて値をチェックするようプログラムを書く癖を付けるようにしましょう。
実行ログを出力するようプログラムを書こう
ログというと、PHPが出力するエラーログというイメージですが、エラーログだけでは、本当の意味でのバグを発見することができません。
具体的には、「ログインできませんでした。」などの、PHP処理は正常に完了したものの、意図した結果にたどり着けなかったというエラーが出た場合を知ることができません。
例えば、会員登録の際にはログインIDで「半角英数と半角ハイフン」を許可していたのに、ログインフォームでは「半角英数」しか許可していなかったというような問題を発見できません。
意図したとおりにプログラムが書かれてない可能性を予見し、実行ログを自前で記録し、検証できる状況を作ることを心がけて、開発を進めるようにしましょう。
如何でしょうか?よりエラーが出にくく、デバックがしやすい状況を備えたプログラミングができれば、よりイケてるプログラマーだと思いませんか?
上記は、実務上有益な心構えですので、是非、より実用的で効率的なPHPプログラミングの学習に取り組んでみてください。