最新情報
- 01月12日・・・DateTime クラス
- 11月06日・・・Smarty
- 10月29日・・・イテレータ
- 10月15日・・・bindParam と bindValue
- 10月06日・・・Cannot modify header information – headers already sent
DateTime クラス
日付や時刻の処理に便利なクラスDateTime。PHP5.2以降で使用可能。DateInterval等、PHP5.3以降で利用可能な機能もある。
$date = new DateTime();
$date->add(時間);
といった処理が楽にできる。上記はオブジェクト形式の場合。手続き型で記述する場合は、date_createを使用する。
従来の date 関数は、日付フォーマット文字列でデータを持っていた。表示するだけなら楽だが、日付の加減算や差分計算等は面倒だった。
2012年01月12日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: PHP
Smarty
Smarty は、デザインテンプレート。プログラムから、ビュー部分を分離し独立して処理しやすくしたもの、と考えると良いだろう。
システムロジックと、デザインテンプレートとが独立平行して作成できれば、分業しやすい等開発効率でメリットがある。またウォーターフォールだけでなく、アジャイル開発も行いやすくなる(この辺は程度問題だが)。
Smarty を使うデメリットとしては、実行速度が遅くなる、という点があげられる。この点はキャッシュ機能等を上手く利用して回避したい。
タグ
2011年11月06日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: テンプレート
イテレータ
デザインパターンの一つ。反復作業を行う時に重宝する。
タグ
2011年10月29日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: デザインパターン
bindParam と bindValue
PDO でプレースホルダーを利用するとき、bindParam や bindValue を使うことがある。これらは、変数をホルダー部分に当てはめる点では同じだが、当てはめを行うタイミングが異なる。
タグ
2011年10月15日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: データベース
Cannot modify header information – headers already sent
すでに何らかのHTML出力が行われている場合に、さらにヘッダー情報を出力しようとしたときに、この warning メッセージが表示される。
タグ
2011年10月06日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: エラーメッセージ
__sleepと__wakeup
__sleepと__wakeupは、マジックメソッド(特殊なメソッド)。
__sleepが定義されているオブジェクトを、serialize関数でシリアル化すると、シリアル化の直前に__sleepが呼び出される。(実行例としては、データベース接続を切断する、保存されていないデータを保存する等)
__wakeupが定義されているオブジェクトを、unserialize関数で非シリアル化すると、非シリアル化の直後に__wakeupが呼び出される。(実行例としては、データベースと接続する、初期化する等)
(*) シリアル化とは、オブジェクトをデータベースやファイルに出力できる形式に変換する作業のこと。
タグ
2011年08月30日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: PHP
PHP技術者認定試験
PHP技術者認定機構によるPHP技術者資格です。
タグ
2011年06月29日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: PHP
PDO
php5.1以降で標準利用可能なエクステンション。(念のためphp.iniは確認しておく)
最初に、new PDO($database, $user, $password)(databaseはmysql:dbname=hogehoge;host=localhostのような形式)でデータベースの種類を指定する必要があるが、それ以後のクエリ発行等は原則として特定のデータベースに依存しない形で記述できる。
プリペアードステートメントに対応。
$db->prepare(SQL文);
$db->bindParam(プレースホルダ、変数の値);
これを利用すれば、自動的にエスケープされるのでSQLインジェクション脆弱性を未然に防ぐことが可能。また類似したクエリが多数ある場合は、処理速度に大きく影響する。
タグ
2011年06月11日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: データベース
フレームワーク
ソフトウェアを作るための基礎部分のことです。一からシステム構築するのと比較すると、以下のようなメリットがあります。
- 良く利用する機能を予め用意しておき、車輪の再発明を防ぐ。
- セキュリティ対策等を自動で行う。
- MVC を利用し、ロジックとレイアウトを分離する。
- コーディング規則を統一し、複数人での開発やメンテナンスを容易にする。
一方で、デメリットもあります。
- フレームワークのコーディング規則や設計思想などの学習コスト
- 実行時の速度
- フレームワーク自体のバージョンアップ時の対応
などがあげられます。
タグ
2011年01月13日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: PHP
doctest
スクリプト本体にコメントとして記述したテストコードを、テストとして実行する。
ソースコードにテストコードを記入するため、手軽にテストを書くことができる。反面、テストコードの量が増えるとソースの可読性が落ちる可能性が高い。単体テストのすべてをdoctestで行うのは非現実的かもしれない。
元々は、Python doctestらしい。PHP では、rhaco の他、Maple や symfony などのフレームワークで、python の doctest に近いものを実装する試みがなされている。
タグ
2010年11月21日 | コメント&トラックバック(0) | トラックバックURL |
カテゴリ: テスト