このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
apricot:core:request-class [2020/05/04 11:02] y2sunlight [SimpleSessionクラス] |
apricot:core:request-class [2020/08/05 11:30] tanaka [ヘルパー関数] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | > 編集中 | ||
- | |||
- | ----- | ||
- | |||
====== Apricot リクエストクラス ====== | ====== Apricot リクエストクラス ====== | ||
--- // | --- // | ||
行 13: | 行 9: | ||
* Apricot コア | * Apricot コア | ||
* [[apricot: | * [[apricot: | ||
- | * [[apricot: | + | * [[apricot: |
* [[apricot: | * [[apricot: | ||
* Apricot リクエストクラス | * Apricot リクエストクラス | ||
* [[apricot: | * [[apricot: | ||
+ | * [[apricot: | ||
+ | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
- | * [[apricot:app: | + | * [[apricot: |
- | \\ | ||
リクエストはPHPの $_GET, | リクエストはPHPの $_GET, | ||
行 503: | 行 500: | ||
==== 設定ファイル ==== | ==== 設定ファイル ==== | ||
- | > TODO: | + | |
+ | セッションには以下の初期設定ファイルが存在します。 | ||
{{fa> | {{fa> | ||
- | <code php cookie.session.php> | + | <code php session.setting.php> |
<?php | <?php | ||
return | return | ||
行 519: | 行 517: | ||
]; | ]; | ||
</ | </ | ||
+ | |||
+ | * name --- シークレット文字列([[apricot: | ||
+ | * ini.gc_maxlifetime --- サーバに保存されるセッション変数の有効期間(既定値は1440[秒]) | ||
+ | * ini.gc_probability --- [[https:// | ||
+ | * ini.gc_divisor --- [[https:// | ||
+ | * ini.cookie_lifetime --- セッションクッキーの有効期間(既定値0ではブラウザを閉じたらセッションは破棄されます) | ||
\\ | \\ | ||
行 524: | 行 528: | ||
===== Flash ===== | ===== Flash ===== | ||
- | フラッシュとは、セッション内で一回限りだけ有効なセッション変数のことで、[[# | + | フラッシュとは、セッション内で一回限りだけ有効な[[# |
==== SimpleFlashクラス ==== | ==== SimpleFlashクラス ==== | ||
- | > TODO: | + | |
+ | SimpleFlashクラスは以下のpublicメソッドを持ちます。 | ||
+ | |||
+ | * has() --- フラッシュ変数の存在確認 | ||
+ | * get() --- フラッシュ変数の取得 | ||
+ | * set() --- フラッシュ変数の設定 | ||
+ | * remove() --- フラッシュ変数の削除 | ||
+ | * clear() --- フラッシュ変数のクリア | ||
{{fa> | {{fa> | ||
行 623: | 行 634: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | |||
+ | |||
+ | * SimpleFlashクラスのコンストラクタでは、セッション変数からフラッシュ変数を再現し、一度しか使用できないようにこの時点でセッション変数からフラッシュデータを削除します。 | ||
\\ | \\ | ||
==== Flashクラス ==== | ==== Flashクラス ==== | ||
- | > TODO: | + | |
+ | Flashクラスは、上のSimpleFlashクラスをシングルトンにしたもので、SimpleFlashのメソッドが全て使用できます。 | ||
+ | |||
+ | 使用法: ** Flash:: | ||
+ | |||
+ | ^メソッド^機能^ | ||
+ | |has(string $key): | ||
+ | |get(string $key, $default = null)|フラッシュ変数の取得| | ||
+ | |set(string $key, $value)|フラッシュ変数の設定| | ||
+ | |remove(string $key)|フラッシュ変数の削除| | ||
+ | |clear()|フラッシュ変数のクリア| | ||
{{fa> | {{fa> | ||
行 658: | 行 683: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | * 親クラスが Singleton ではなく CallStatic である点に注意して下さい。 | ||
+ | * getInstance()では、単に Sessionオブジェクトのフラッシュデータを返しているだけです。FlashオブジェクトはSessionオブジェクトに包含されています。 | ||
\\ | \\ | ||
行 666: | 行 694: | ||
==== SimpleCookieクラス ==== | ==== SimpleCookieクラス ==== | ||
- | > TODO: | + | |
+ | SimpleCookieクラスは$_COOKIEのラッパークラスです。以下のpublicメソッドを持ちます。 | ||
+ | |||
+ | * has() --- クッキーの存在確認 | ||
+ | * get() --- クッキーの取得 | ||
+ | * set() --- クッキーの設定(有効期限付き) | ||
+ | * forever() --- クッキーの設定(永続的) | ||
+ | * remove() --- クッキーの削除 | ||
{{fa> | {{fa> | ||
行 785: | 行 820: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | * クッキーの送信(sendCookie)では設定ファイルから必要なパラメータを取得しています。 | ||
\\ | \\ | ||
==== Cookieクラス ==== | ==== Cookieクラス ==== | ||
- | > TODO: | + | |
+ | Cookieクラスは、上のSimpleCookieクラスをシングルトンにしたもので、SimpleCookieのメソッドが全て使用できます。 | ||
+ | |||
+ | 使用法: ** Cookie:: | ||
+ | |||
+ | ^メソッド^機能^ | ||
+ | |has(string $key): | ||
+ | |get(string $key, $default = null)|クッキーの取得| | ||
+ | |set(string $key, string $value, int $expires_sec=0): | ||
+ | |forever(string $key, string $value): | ||
+ | |remove(string $key)|クッキーの削除| | ||
{{fa> | {{fa> | ||
行 825: | 行 872: | ||
==== 設定ファイル ==== | ==== 設定ファイル ==== | ||
- | > TODO: | + | |
+ | クッキーには以下の初期設定ファイルが存在します。 | ||
{{fa> | {{fa> | ||
行 838: | 行 886: | ||
]; | ]; | ||
</ | </ | ||
+ | |||
+ | * path --- ドメイン上のクッキーが有効なパス(既定値はカレントパス: | ||
+ | * domain--- クッキーが有効なドメイン(既定値はカレントURLのドメイン) | ||
+ | * secure--- TRUEを設定すると、セキュアな接続が存在する場合にのみクッキーを設定します | ||
+ | * httponly--- TRUEを設定すると、HTTPを通してのみクッキーを設定します | ||
+ | |||
+ | > 設定値の詳細は、PHPマニュアルの[[https:// | ||
\\ | \\ | ||
- | ===== ヘルバー関数 ===== | + | ===== ヘルパー関数 ===== |
- | リクエストクラスのget()メソッドは良く使用されるのでヘルパー関数に追加しておきます。 | + | リクエスト処理用のヘルパー関数に追加します。inputLabels()はInputクラスからバリデーションの項目名を取得するのに便利な関数です。その他のget()メソッドはHTMLテンプレートでよく使われる関数です。 |
+ | |||
+ | ^ヘルパー関数^機能^ | ||
+ | |inputLabels\\ (string $message_key): | ||
+ | |input\\ (string $key, $default=null): | ||
+ | |queryString\\ (string $key, $default=null): | ||
+ | |session\\ (string $key, $default=null): | ||
+ | |flash\\ (string $key, $default=null): | ||
+ | |cookie\\ (string $key, $default=null): | ||
{{fa> | {{fa> | ||
<code php boilerplates.php> | <code php boilerplates.php> | ||
+ | /** | ||
+ | * Get Input Labels | ||
+ | * @param string $message_key | ||
+ | * @return array | ||
+ | */ | ||
+ | function inputLabels(string $message_key): | ||
+ | { | ||
+ | $labels = []; | ||
+ | foreach(array_keys(Core\Input:: | ||
+ | { | ||
+ | $dot_key = " | ||
+ | if (Core\Lang:: | ||
+ | { | ||
+ | $labels[$name] = Core\Lang:: | ||
+ | } | ||
+ | } | ||
+ | return $labels; | ||
+ | } | ||
+ | |||
/** | /** | ||
* Get input($_GET or $_POST depending on the method) data | * Get input($_GET or $_POST depending on the method) data | ||
行 873: | 行 955: | ||
* @param string $key | * @param string $key | ||
* @param mixed $default | * @param mixed $default | ||
- | * @return | + | * @return |
*/ | */ | ||
function session(string $key, $default=null) | function session(string $key, $default=null) | ||
行 884: | 行 966: | ||
* @param string $key | * @param string $key | ||
* @param mixed $default | * @param mixed $default | ||
- | * @return | + | * @return |
*/ | */ | ||
function flash(string $key, $default=null) | function flash(string $key, $default=null) |