m6uのエンジニアっぽい日記

PHP利用開発やFuelPHP利用開発、PostgreSQL利用開発、Androidアプリ開発、CentOS7サーバー構築など、テクニカルでエンジニアっぽい内容の日記

こんなPHP入門書はダメだ(ライトニングトーク風にまとめる)

NG: PHP7以降に対応していない(出版年度が古い本にありがち&改定されていても昔の書き方が残置されていることもあり)

NG: デバッグの仕方について言及がない(リモートデバッグとかXDebugの説明がない)

NG: 自分の開発環境(WindowsとかMacとか)と本の開発環境が合ってない(そんな画面はありませんけど、的な)

NG: データベースにmysql_*関数を使って接続している(改良されたmysqli_*〈マイエスキューエルアイ〉関数ならまだいいけど、やっぱりpdo接続で説明されているものが望ましい)

NG: php(やapache httpd)での、デバッグしやすくする設定事項の言及がない(display_errorsディレクティブとかerror_logディレクティブとか、デバッグ向けの設定があるのです)

NG: SQL文が文字列と変数の連結で準備されている(POSTやGETで受信したデータを検証せずSQL文に連結してしまうと、SQLインジェクション攻撃されてしまい危険です)

NG: アクセス頻度が多そうなデータファイルを、file_get_contents()とfile_put_contents()で読み書きしている(同時アクセスが有ったときに排他ロックをかけないと、ファイルが壊れちゃうよ)

NG: BOMなしUTF-8でコーディングしていない(SJIS-winでもないSJISとか、そもそも言及していないとか)

NG: やたら<?php ~ ?>ブロックが多く、htmlとの分離が悪い(読みにくいということはデバッグしづらい、理解しづらいことにもつながり)

入門書を買う前にやっとくべきこと

  • ネット上の書評を確認しておく。
  • 出版元のページを確認して正誤表の存在を確認する。

Amazonのレビューも、話半分に読んでおくといいかも。

  • 出版年度は必ず確認。5年以上も古いのは避ける。PHP7対応が怪しいものは避ける。

これから学習をはじめて習得するのに、今ではほとんど通用しない古いやり方を学んでも無駄になってしまうので。
PHP7(できればPHP7.1以降)対応が明記されていれば、読む価値はありそう。