lmd で利用可能なメソッドのリファレンスです。
個人的な見解になりますが、利用頻度も明記しています。
★★★ よく使う
★★ 使う
★ ほとんど使わない
なお、以下の説明は、次の URL がリクエストされたと仮定しています。
- インスタンスメソッド / クラスメソッド のどちらでも利用できるメソッド
- httpHost – リクエストされた URL の HOST 名を返却します (★)
- httpRequestUri – リクエストされた URL の REQUEST_URI を返却します (★★)
- httpQueryString – リクエストされた URL の QUERY_STRING を返却します (★★)
- httpRequestDir – リクエストされた URL の ディレクトリまでのパスを返却します (★)
- isSSL – リクエストされた URL が SSL かどうかを判定します (★)
- getURL – リクエストされた URL を返却します (★★★)
- getURI – getURL のエイリアス (★★★)
- インスタンスメソッドとして利用できるメソッド
- getMainModule – メインモジュール名を返却します (★)
- isMainModule – メインモジュールを判定します (★★★)
- getMainModuleGroup – メインモジュールのグループ名を返却します (★)
- isMainModuleGroup – メインモジュールのグループを判定します (★★★)
- getModule – モジュール名を返却します (★)
- setLogic – ロジック名をセットします (★)
- setPrep – プレップ名をセットします (★)
- setView – ビュー名をセットします (★★)
- setResponse – ビューまたはプレップにアサインするレスポンスをセットします (★★★)
- getResponse – setResponse でアサインされたレスポンスを返却します (★★)
- setError – バリデーションエラーメッセージをセットします (★★★)
- getError – setError でアサインされたバリデーションエラーメッセージを返却します (★★★)
- param – invokeModule でアサインされたパラメータを返却します (★★★)
- httpGet – ゲットリクエスト($_GET)を返却します (★★★)
- httpPost – ポストリクエスト($_POST)を返却します (★★★)
- rawHttpGet – 無加工のゲットリクエスト($_GET)を返却します (★)
- rawHttpPost – 無加工のポストリクエスト($_POST)を返却します (★)
- hasHttpGet – ゲットリクエスト($_GET)の存在を確認します (★★★)
- hasHttpPost – ポストリクエスト($_POST)の存在を確認します (★★★)
- httpCookie – クッキーの取得と保存を行います (★★★)
- hasHttpCookie – クッキーの存在を確認します (★★)
- invokeModule – モジュールを実行します (★★★)
- invokeValidator – バリデーターを実行します (★★★)
- hasValidatorError – バリデーターエラーの存在を確認します (★★★)
- redirect – リダイレクトさせます (★★★)
1.インスタンスメソッド / クラスメソッド のどちらでも利用できるメソッド
$lmd->httpHost() / Lambda::httpHost()
リクエストされた URL の HOST 名を返却します。
⇒ example.com
第一引数に true を渡すと、スキーマ(http:// or https://)を付与して返却します。
⇒ http://example.com
$lmd->httpRequestUri() / Lambda::httpRequestUri()
リクエストされた URL の REQUEST_URI を返却します。
※ スーパーグローバル変数 $_SERVER['REQUEST_URI'] をラップしています。
⇒ /dir/func?arg1=val_1&arg2=val_2
$lmd->httpQueryString() / Lambda::httpQueryString()
リクエストされた URL の QUERY_STRING を返却します。
※ スーパーグローバル変数 $_SERVER['QUERY_STRING'] をラップしています。
⇒ arg1=val_1&arg2=val_2
$lmd->httpRequestDir() / Lambda::httpRequestDir()
リクエストされた URL の ディレクトリまでのパスを返却します。
※ 末尾の / (スラッシュ) は含みません。
⇒ /dir
$lmd->isSSL() / Lambda::isSSL()
リクエストされた URL が SSL かどうかを判定します。
⇒ false
$lmd->getURL() / Lambda::getURL()
リクエストされた URL を返却します。
⇒ http://example.com/example.com/dir/func?arg1=val_1&arg2=val_2
第一引数に false を渡すと、スキーマ(http:// or https://)を省略して返却します。
⇒ example.com/dir/func?arg1=val_1&arg2=val_2
$lmd->getURI() / Lambda::getURI()
上記 $lmd->getURL() のエイリアス
2.インスタンスメソッドとして利用できるメソッド
$lmd->getMainModule()
メインモジュール名を返却します。
⇒ dir.func
$lmd->isMainModule()
メインモジュールを判定します。
⇒ true
⇒ false
$lmd->getMainModuleGroup()
メインモジュールのグループ名を返却します。
⇒ dir
$lmd->isMainModuleGroup()
メインモジュールのグループを判定します。
⇒ true
⇒ false
$lmd->getModule()
モジュール名を返却します。
⇒ dir.func
$lmd->setLogic()
ロジック名をセットします。
ロジックモジュラー内で、他のロジックに処理を委譲したい場合に利用します。
必ず return 命令とともに利用し、一旦 現在のロジックを抜けます。
$lmd->setPrep()
プレップ名をセットします。
ロジックモジュラーまたはプレップモジュラー内で、他のプレップに処理を委譲したい場合に利用します。
すぐに処理を委譲したい場合は、return 命令とともに利用します。
$lmd->setView()
ビュー名をセットします。
ロジックモジュラーまたはプレップモジュラー内で、他のビューに処理を委譲したい場合に利用します。
すぐに処理を委譲したい場合は、return 命令とともに利用します。
$lmd->setResponse()
ビューまたはプレップにアサインするレスポンスをセットします。
デフォルトではセットされた値を再帰的にサニタイズ(htmlspecialchars)します。
'var_1' => 'val_1',
'var_2' => array('var_2_1', 'var_2_2'),
:
))
サニタイズ(htmlspecialchars)したいくない時は、第二引数に Lambda::INSANITATION を指定します。
'var_1' => 'val_1',
'var_2' => array('var_2_1', 'var_2_2'),
:
), Lambda::INSANITATION)
$lmd->getResponse()
$lmd->setResponse() でアサインされたレスポンスを返却します。
※ おもにプレップにおいて、ロジックでアサインされたレスポンスを取り出す時に利用します。
引数を与えない場合、すべてのレスポンスを配列で返却します。
第一引数にキーを与えると、キーに対応する値を返却します。
与えられたキーが存在しない場合は、空文字 ” が返却されます。
第二引数は、与えられたキーが存在しない場合の代替値を指定します。
$lmd->setError()
バリデーションエラーメッセージをセットします。
デフォルトではセットされた値を再帰的にサニタイズ(htmlspecialchars)します。
サニタイズ(htmlspecialchars)したいくない時は、第二引数に Lambda::INSANITATION を指定します。
連想配列でセットすることも可能です。
$lmd->getError()
$lmd->setError() でアサインされたバリデーションエラーメッセージを返却します。
引数を与えない場合、すべてのエラーメッセージを配列で返却します。
第一引数にキーを与えると、対応する値を返却します。
与えられたキーが存在しない場合は、空文字 ” が返却されます。
第二引数は、与えられたキーが存在しない場合の代替値を指定します。
$lmd->param()
$lmd->invokeModule() でアサインされたパラメータを返却します。
例えば、下記のように common.head モジュール に対して、’title’ というキーでパラメータをアサインした場合、
'title' => 'サイトタイトル',
));
common.head モジュールのロジック、プレップ、ビューにおいて、下記のようにパラメータを取得できます。
⇒ キー title が存在する場合:サイトタイトル
⇒ キー title が存在しない場合:'' 空文字
第二引数は、与えられたキーが存在しない場合の代替値を指定します。
⇒ キー title が存在する場合:サイトタイトル
⇒ キー title が存在しない場合:デフォルトのタイトル
第三引数は、正規表現を指定します。
与えられたキーに対する値が正規表現マッチした場合のみ返却したい時に利用します。
※ 第三引数は、返却される値がスカラー変数の場合のみ利用できます。(配列やオブジェクトは不可)
⇒ キー title に対する値が半角英数の連続の場合:例)site_title
⇒ キー title に対する値が半角英数の連続でない場合:デフォルトのタイトル
$lmd->httpGet()
ゲットリクエスト($_GET)を返却します。
※ スーパーグローバル変数 $_GET をラップしています。
このメソッドは返却する値の前後にあるホワイトスペース(全角スペースを含む)と制御文字を暗黙のうちに除去します。
ただし、次の制御文字は除去しません。
\t(タブ)、\r(キャリッジリターン)、\n(ラインフィード)
⇒ キー arg1 が存在する場合:val_1
⇒ キー arg1 が存在しない場合:'' 空文字
第二引数は、与えられたキーが存在しない場合の代替値を指定します。
⇒ キー arg1 が存在しない場合:null
第三引数は、正規表現を指定します。
与えられたキーに対する値が正規表現マッチした場合のみ返却したい時に利用します。
※ 第三引数は、返却される値がスカラー変数の場合のみ利用できます。(配列やオブジェクトは不可)
⇒ キー arg1 に対する値が半角英数の連続の場合:val_1
⇒ キー arg1 に対する値が半角英数の連続でない場合:null
$lmd->httpPost()
ポストリクエスト($_POST)を返却します。
※ スーパーグローバル変数 $_POST をラップしています。
このメソッドは、上記 $lmd->httpGet() の POST 版で、機能は $lmd->httpGet() と同じです。
そのため、説明を省略します。
$lmd->rawHttpGet()
無加工のゲットリクエスト($_GET)を返却します。
このメソッドは、$lmd->httpGet() のように、ホワイトスペースと制御文字を除去しません。
無加工の値を取り出したい時に利用します。
$lmd->rawHttpPost()
無加工のポストリクエスト($_POST)を返却します。
このメソッドは、$lmd->httpPost() のように、ホワイトスペースと制御文字を除去しません。
無加工の値を取り出したい時に利用します。
$lmd->hasHttpGet()
ゲットリクエスト($_GET)の存在を確認します。
⇒ キー arg1 が存在する場合:true
⇒ キー arg1 が存在しない場合:false
$lmd->hasHttpPost()
ポストリクエスト($_POST)の存在を確認します。
⇒ キー arg1 が存在する場合:true
⇒ キー arg1 が存在しない場合:false
$lmd->httpCookie()
クッキーの取得と保存を行います。
※ 第二、第三引数に値がセットされた場合、保存として機能します。
クッキーのキー cookie_1 に、save_value という値をセットする。
'expire' => UNIXエポック, // 有効期限(0を指定した場合は、ブラウザを閉じた時に消滅)
'path' => '/', // クッキーを有効としたいパス
'domain' => 'example.com', // クッキーが有効なドメイン
'secure' => boolean, // HTTPS のみ有効にしたいか (省略可: デフォルト: false)
))
パラメータに関しては、PHPのビルトイン関数 setcookie と同じです。
詳しくはマニュアルをご覧ください。
http://jp2.php.net/manual/ja/function.setcookie.php
クッキーの取得
⇒ クッキーのキー cookie_1 が存在する場合:save_value
⇒ クッキーのキー arg1 が存在しない場合:null
$lmd->hasHttpCookie()
クッキーの存在を確認します。
⇒ クッキーのキー cookie_1 が存在する場合:true
⇒ クッキーのキー arg1 が存在しない場合:false
$lmd->invokeModule()
モジュールを実行します。
第一引数にモジュールを指定し、第二引数にパラメータをセットします。第二引数は省略可能です。
なお、第二引数にセットしたパラメータは、対象モジュール内で、$lmd->param メソッドで取り出せます。
下記は、common.head モジュールに対して、<title>タグや<meta><link><script>タグをセットしている例です。
このようにすることで、<head>タグ内の記述をページごとに変更することが可能になります。
'title' => 'ページの名前',
'meta' => array(
'<meta name="description" content="サイトの概要">',
),
'link' => array(
'<link href="css/style.css" rel="stylesheet" type="text/css">',
),
'script' => array(
'<script language="javascript" src="js/script.js"></script>',
),
));
$lmd->invokeValidator()
バリデーターを実行します。
第一引数にルールを記述したバリデータースクリプト(.phpの拡張子を省略)を指定し、第二引数にパラメータをセットします。
$name = $lmd->httpPost('name');
$email = $lmd->httpPost('email');
$phone = $lmd->httpPost('phone');
$lmd->invokeValidator('user/profile', array(
'name' => $name,
'email' => $email,
'phone' => $phone,
));
バリデータースクリプト (Lambda/validator/user/profile.php)
Factory::import('Validator');
if ($name === '') {
$lmd->setError('「氏名」を入力してください');
}
if ( ! Validator::isEmail($email)) {
$lmd->setError('「メールアドレス」を正しく入力してください');
}
if ( ! Validator::isPhone($phone)) {
$lmd->setError('「電話番号」を正しく入力してください');
}
$lmd->hasValidatorError()
バリデーターエラーの存在を確認します。
⇒ バリデーターエラーが存在する場合:true
⇒ バリデーターエラーが存在しない場合:false
$lmd->redirect()
リダイレクトさせます。
※ header(‘Location: …’) をラップしています。
http://からの絶対URLが指定されない場合は、http://を付加してリダイレクト命令を行います。(RFC準拠)
引数として、 「/からの絶対パス」 または 「http://からの絶対URL」 を指定します。
$lmd->redirect('/path/to/index.html')
絶対URL
$lmd->redirect('http://example.com/path/to/index.html')
第二引数は、HTTPレスポンスコード(300台)を指定可能です。(省略した場合: 302)
$lmd->redirect('/path/to/index.html', 301)