第13章 様々なテクニック
教科書「プログラミングPHP 第2版」
上級試験は、オライリーから出版されているプログラミングPHP 第2版を教科書に出題されます。
コードライブラリ
- 自作ライブラリを作成
- 典型的には.incファイルにまとめ、require_onceで読み込む
- ライブラリを読み込むほど、パースに時間がかかるので注意する
テンプレートシステム
- ロジックとデザイン(レイアウト)の分離
- {NAME}等の表記を用いる
- パフォーマンスとはトレードオフなので注意する
出力バッファリング
- ブラウザに出力する前にデータを蓄積する
- ob_startで開始。オプションでコールバック指定可能
- ob_get_lengthで長さを取得、ob_get_contentsで内容を取得。バッファリングしていない時はfalseを返す。
- ob_cleanはバッファを消去するが、バッファリングは続行。ob_end_cleanは、バッファを消去し、バッファリング終了。
- ob_flushはウェブサーバに送信してバッファを消去、バッファリング続行。flushは即座にブラウザに送信する。ob_end_flushは、送信後バッファリング終了。
- バッファリングのままスクリプトの最後までいった場合は、ob_end_flushが実行される
- ob_gzhandlerは、データを圧縮に対応しているブラウザには圧縮して送信する
エラーハンドリング
- noticeは、値がセットされていない変数へのアクセスなど、通常の実行時に遭遇し得るもの
- warningは、関数の引数が妥当でない場合など、致命的ではないエラー
- errorは、スクリプト実行に支障が出るエラー
- parseは、構文の間違い
- php.iniでエラー出力を設定できる。
- @マークをつけると、部分的にエラー抑制できる
- set_error_handlerでエラーハンドラを定義する
- error_log(エラーメッセージ,送り先)。送り先は0はデフォルト、1はメール、3はファイル
- 実際に運用するサイトでは、画面にエラーメッセージを表示しないようにする
display_errors=Off
log_errors=On
error_log=/tmp/errors.log
※原書を元にしています。日本語訳本とは用語等が異なる可能性があります。
Copyright (C) 2003-2018. PHP で WEB 作成 All rights reserved.