MySQLで、timestampのカラムを定義するとき、「ON UPDATE」というものがあることを、「PHP frameworks, Part 1: Getting started with three popular frameworks」で知ったので、メモです。
MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 10.3.1.1 TIMESTAMP MySQL 4.1での性質より、引用。
DEFAULT CURRENT_TIMESTAMP と ON UPDATE CURRENT_TIMESTAMP 条項の両方で、カラムはそのデフォルトに現在のタイムスタンプを持ち、それは自動的に更新されます。
定義の例より引用:
CREATE TABLE t (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP);
「CakePHP のおいしい食べ方: IBMでPHP3大フレームワーク記事スタート」で、次の記事が紹介されていました。
PHP frameworks, Part 1: Getting started with three popular frameworks
symfonyは、次の記事を見て、個人的に選択することはないかも、と思っていますが、上記、比較記事を今後楽しみにしたいと思います。
PHPベンチマーク: Zend Framework vs Symfony vs CakePHP vs CodeIgniter vs PHP on TRAX - 徒然なるままにBlog
PHPフレームワークのベンチマーク比較:phpspot開発日誌
Zend_Session::rememberMe()の使用に関してのメモです。
Zend Framework: Documentationに、次のような記述があります。
セッションの開始前に Zend_Session::rememberMe() を使用すると、セッションクッキーの有効期限を制御することができます。
Zend_Session::start()の後に、Zend_Session::rememberMe() を使用しても、クッキーの有効期限が変化するようです(TODO:詳細調査)。
Zend_Session::rememberMeを使用すると、session_regenerate_id(true)がコールされています(ZendFramework-1.0.1)。
session_regenerate_id(true)をコールすると、session_set_cookie_paramsがsession_startの後でもクッキーの有効期限が変化するようです(PHP 5.2.3)。
Firefox2とInternet Explorer6のセッション関連の振る舞いの違い
Zend_Session::rememberMeを使用しない場合
Firefox2は、ブラウザを閉じても、セッションが継続するようです(クッキーの有効期限は、「セッション終了時」となっています。)(TODO:詳細調査)。
(Firefox2のクッキーに関する設定は、[オプション]ダイアログの[プライバシー]タブの[Cookie を保存する期間]を「サイトが指定した期限まで」に設定しています。)
Internet Explorer6は、ブラウザを閉じると、セッションは継続しません。
Zend_Session::rememberMeを使用した場合
Firefox2は、クッキーの有効期限が設定され、その有効期限の間は、ブラウザを閉じても、セッションが継続するようです。
Internet Explorer6も、ブラウザを閉じても、セッションが継続しました。
その他のメモ
remember_me_secondsに設定する値
Zend FrameworkのAPI Guideに、次の記述があります。
Due to clock errors on end users’ systems, large values are recommended to avoid undesirable expiration of session cookies.
大きい値がどのくらいの秒数かわかりませんが、100程度の値だとInternet Explorer6では、セッションをまったく継続できないようです。
.htaccessの設定で、Strict Standardsメッセージを表示しないようにするメモです。
display_errorsがオンの場合、Strict Standards以外のサポートされる全てのエラーと警告は、表示されます。
PHPのバージョンが5.2より前の場合
php_value error_reporting 2047
PHPのバージョンが5.2.xの場合
php_value error_reporting 6143
PHPのバージョンが5.3以降、6より前の場合
php_value error_reporting 8191
PHPのバージョンが6の場合、E_STRICTが含まれるそうなので、Strict Standardsメッセージは、表示されます。