D-Framework 機能 †DBアクセスクラス †DBにアクセスするためのPDOラッパークラスを提供しています
DBクラスに自作メソッドを追加 †DBクラスを継承したクラスを定義し、そこに自作のメソッドを追加します。 class MyDB extends DB {
public function hoge() {
/* hoge処理 */
}
}
簡単な使い方 †
複数のDB接続 †通常CONFIGに設定したデフォルトDSN情報でDB接続します。
便利なINSERTメソッド †INSERT命令はSQL文を書かずに実行できるメソッドがあります。 $db = new DB(); $params = array( 'title'=>'ほげタイトル', 'description'=>'ほげんほげん' ); $ret = $db->insert( 'my_table', $params ); // INSERT実行 上記実行のSQLは、 INSERT INTO my_table ( title, description ) VALUES ( "ほげタイトル", "ほげんほげん" ); となります。 $db = new DB(); $params = array( 'title'=>'ほげタイトル', 'created_at'=>'NOW()' ); $ret = $db->insert( 'my_table', $params ); // INSERT実行 上記実行のSQLは、 INSERT INTO my_table ( title, created_at ) VALUES ( "ほげタイトル", NOW() ); となります。 詳細マニュアル †DBクラス エラー処理 †DB操作メソッド †DBメソッドエラー時は false(boolean) が返却されます。 $rtn = $db->exec(); if ($rtn === false) { echo 'DB execエラー'; } $rtn = $db->fetch(); if ($rtn === false) { echo 'DB fetchエラー'; } 以下の関数のエラー時は false(boolean) が返却されます。
DBコンストラクタ †コンストラクタのエラーチェックのみ isConnect メソッドを使用します。 $db = new DB();
if (! $db->isConnect()) {
echo 'DBコネクトエラー'
}
VIEWでの自動エスケープ †モジュールPHPで設定したVIEWへの情報はエスケープ処理されます setView( 'name', '<p>s-tanno</p>' ); エスケープしたくない情報は、setViewRaw() で設定してください setViewRaw( 'name', '<p>s-tanno</p>' ); VIEWへの情報の渡し方(1) †
VIEWへの情報の渡し方(2) †
VIEWへの情報の渡し方(3) †
URLマッピング †URLのパス情報をGETパラメータとして取得出来ます。
URL例 http://hogehoge.jp/view/0123/tatenosystem/
セッション処理 †通常の使い方 †特に D-Framework 関数を利用する必要はありません。 session_start(); 設定ファイルにセッション名を定義してある場合は下記のコードでセッションを開始してください。 session_name( SESSION_NAME ); session_start(); セッション開始後、PHP関数でセッション処理をしてください。 $_SESSION['hoge'] = 'hogehoge'; 認証が必要な場合 †ログイン機能があるWEBアプリケーションを作成する場合は D-Framework 関数を利用してください。
startFirstSession(); セッションが開始されフィンガープリントがセッションに保持されます。
startSession(); セッションが開始されフィンガープリントが正しいかをチェックします。
startSession('top');
セッションが開始されフィンガープリントが正しいかをチェックします。 セッション開始後、D-Frameworkセッション関数 又は PHP関数でセッション処理をしてください。 $_SESSION['hoge'] = 'hogehoge'; setSession( 'hoge', 'hogehoge' ); setSession( 'hoge' ); // セッション情報を削除 CSRF対策が必要な場合 †CSRF対策を行う必要があるWEBアプリケーションを作成する場合は D-Framework 関数を利用してください。
詳細は「CSRF対策機能」を参照してください。 ⇒ CSRF対策機能 CSRF対策機能 †CSRF対策機能を使う場合、前提として D-Framework関数 でセッションを開始している必要があります。 (1)情報送信ページ †モジュールで getCsrfCode関数 を実行してCSRF対策コードを取得します。 $csrfCode = getCsrfCode(); setView( 'csrfCode', $csrfCode ); または setView( 'csrfCode', getCsrfCode() ); ビューでは POST の HIDDEN データとして、CSRF対策コードを設定します。 <form name="hoge" method="post" action="">
……
<input type="hidden" name="csrfCode" value="{$csrfCode}">
……
</form>
(2)情報受信ページ †HIDDEN データとして設定したCSRF対策コードを取得します。 $csrfCode = $_POST['csrfCode']; checkCsrf( $csrfCode ); または checkCsrf( $_POST['csrfCode'] ); 正しいCSRF対策コードが正しくない場合に、指定したモジュールにリダイレクトする場合 checkCsrf( $csrfCode, 'top' ); // 不正の場合はtopモジュールにリダイレクト バリデーション †バリデーションパターン(正規表現チェック) †データの妥当性をチェックする関数(validate関数)を利用します。
if ( ! validate('NUMBER', $_GET['year']) ) {
// NG処理
}
定義文字列は , (カンマ) または - (ハイフン)で連結して使用ができます。
if ( ! validate('NUMBER,ALPHA', $_GET['code']) ) {
// NG処理
}
定義文字列がない場合は「正規表現」でバリデーションパターンを定義できます。 if ( ! validate('/^[0-9A-C]$/', $_GET['code']) ) {
// NG処理
}
文字列長チェック †データの長さを妥当性をチェックする場合は、validate関数の第3引数と第4引数に長さの範囲を指定します。
if ( ! validate('NUMBER,ALPHA', $_GET['code'], 3, 7) ) {
// NG処理
}
正規表現のチェックは省略可能です。
if ( ! validate('', $_GET['code'], 3, 7) ) {
// NG処理
}
文字列長のチェックを「バイト単位」で行いたい場合は、「validateByte関数」利用します。 正規表現チェックを行わない場合は、バリデーションパターンに空文字を設定します。
if ( ! validateByte('', $_GET['code'], 3, 7) ) {
// NG処理
}
バリデーションエラーの取得 †「validate関数」でデータの妥当性がNGだった場合、エラーの詳細は「getValidateError関数」で取得できます。 「getValidateError関数」では配列を取得できます。 if ( ! validateByte('ALPHA-NUMBER-SPACE', $str, 2, 3)) {
echo '<p>データエラー</p>';
var_dump( getValidateError() );
}
getValidateError() の戻り値は失敗したチェック項目がキーとなる連想配列で取得されます。 array 'pattern' => int 1 'min' => int 1 'max' => int 1 チェック項目と連想配列のキーは、以下のとおりです。
|