Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


apricot:core:request-class

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
apricot:core:request-class [2020/05/04 11:37]
y2sunlight [Flashクラス]
apricot:core:request-class [2020/08/05 11:30] (現在)
tanaka [ヘルパー関数]
行 1: 行 1:
-> 編集中 
- 
------ 
- 
 ====== Apricot リクエストクラス ====== ====== Apricot リクエストクラス ======
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-05-02//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-05-02//
行 13: 行 9:
   * Apricot コア   * Apricot コア
     * [[apricot:core:top|Apricot コア作成の準備]]     * [[apricot:core:top|Apricot コア作成の準備]]
-    * [[apricot:core:applocation-class|Apricot アプリケーションクラス]]+    * [[apricot:core:application-class|Apricot アプリケーションクラス]]
     * [[apricot:core:basic-class|Apricot 各種基本コアクラス]]     * [[apricot:core:basic-class|Apricot 各種基本コアクラス]]
     * Apricot リクエストクラス     * Apricot リクエストクラス
     * [[apricot:core:response-class|Apricot レスポンスクラス]]     * [[apricot:core:response-class|Apricot レスポンスクラス]]
 +    * [[apricot:core:base-controller|Apricot ベースコントローラ]]
 +    * [[apricot:core:completion|Apricot コアの完成]]
   * [[apricot:app:top|Apricot アプリ]]   * [[apricot:app:top|Apricot アプリ]]
-  * [[apricot:app:ext|Apricot 拡張]]+  * [[apricot:ext:middleware|Apricot 拡張]]
  
-\\ 
  
 リクエストはPHPの $_GET,$_POST,$_SESSION,$_COOKIE,$_SERVER,$_FILE を対象とします。多くのフレームワークではこれらをまとめて1つのRequestクラスで実装しています。しかし、apricotではなるべく本来のPHPのスタイルを残した形で実装したいと思います。$_GET,$_POST,$_SESSION,$_COOKIEに、FLASH(1回限り有効なセッション変数)を加えてたリクエストを対象として以下の5つのクラスをシングルトンとして実装します。 リクエストはPHPの $_GET,$_POST,$_SESSION,$_COOKIE,$_SERVER,$_FILE を対象とします。多くのフレームワークではこれらをまとめて1つのRequestクラスで実装しています。しかし、apricotではなるべく本来のPHPのスタイルを残した形で実装したいと思います。$_GET,$_POST,$_SESSION,$_COOKIEに、FLASH(1回限り有効なセッション変数)を加えてたリクエストを対象として以下の5つのクラスをシングルトンとして実装します。
行 640: 行 637:
  
  
-  * SimpleFlishクラスのコンストラクタでは、セッション変数からフラッシュ変数を再現し、一度しか使用できないようにこの時点でセッション変数からフラッシュデータを削除します。+  * SimpleFlashクラスのコンストラクタでは、セッション変数からフラッシュ変数を再現し、一度しか使用できないようにこの時点でセッション変数からフラッシュデータを削除します。
  
 \\ \\
行 686: 行 683:
 } }
 </code> </code>
 +
 +  * 親クラスが Singleton ではなく CallStatic である点に注意して下さい。
 +  * getInstance()では、単に Sessionオブジェクトのフラッシュデータを返しているだけです。FlashオブジェクトはSessionオブジェクトに包含されています。
  
 \\ \\
行 694: 行 694:
  
 ==== SimpleCookieクラス ==== ==== SimpleCookieクラス ====
-> TODO:+ 
 +SimpleCookieクラスは$_COOKIEのラッパークラスです。以下のpublicメソッドを持ちます。 
 + 
 +  * has() --- クッキーの存在確認 
 +  * get() --- クッキーの取得 
 +  * set() --- クッキーの設定(有効期限付き) 
 +  * forever() --- クッキーの設定(永続的) 
 +  * remove() --- クッキーの削除
  
 {{fa>folder-open-o}} ** /apricot/core/Foundation ** {{fa>folder-open-o}} ** /apricot/core/Foundation **
行 813: 行 820:
 } }
 </code> </code>
 +
 +  * クッキーの送信(sendCookie)では設定ファイルから必要なパラメータを取得しています。
  
 \\ \\
  
 ==== Cookieクラス ==== ==== Cookieクラス ====
-> TODO:+ 
 +Cookieクラスは、上のSimpleCookieクラスをシングルトンにしたもので、SimpleCookieのメソッドが全て使用できます。 
 + 
 +使用法** Cookie::{メソッド} ** 
 + 
 +^メソッド^機能^ 
 +|has(string $key):bool|クッキーの存在確認| 
 +|get(string $key, $default = null)|クッキーの取得| 
 +|set(string $key, string $value, int $expires_sec=0):bool|クッキーの設定(有効期限付き)| 
 +|forever(string $key, string $value):bool|クッキーの設定(永続的)| 
 +|remove(string $key)|クッキーの削除|
  
 {{fa>folder-open-o}} ** /apricot/core ** {{fa>folder-open-o}} ** /apricot/core **
行 853: 行 872:
  
 ==== 設定ファイル ==== ==== 設定ファイル ====
-> TODO:+ 
 +クッキーには以下の初期設定ファイルが存在します。
  
 {{fa>folder-open-o}} ** /apricot/config/setting ** {{fa>folder-open-o}} ** /apricot/config/setting **
行 866: 行 886:
 ]; ];
 </code> </code>
 +
 +  * path --- ドメイン上のクッキーが有効なパス(既定値はカレントパス:即ち公開パスpublic)
 +  * domain--- クッキーが有効なドメイン(既定値はカレントURLのドメイン)
 +  * secure--- TRUEを設定すると、セキュアな接続が存在する場合にのみクッキーを設定します
 +  * httponly--- TRUEを設定すると、HTTPを通してのみクッキーを設定します
 +
 +> 設定値の詳細は、PHPマニュアルの[[https://www.php.net/manual/ja/function.setcookie.php|setcookie]]を参照して下さい。
  
 \\ \\
  
-===== ヘルー関数 =====+===== ヘルー関数 =====
  
-リクエストクラスのget()メソッドはく使用されるでヘルパー関数に追加ておきます+リクエスト処理用のヘルパー関数に追加します。inputLabels()はInputクラスからバリデーションの項目名を取得するのに便利な関数です。その他のget()メソッドはHTMLテンプレートでよく使れる関数す。 
 + 
 +^ヘルパー関数^機能^ 
 +|inputLabels\\ (string $message_key):array|フォームデータのラベル配列を取得します
 +|input\\ (string $key, $default=null):string|フォームデータを取得| 
 +|queryString\\ (string $key, $default=null):string|クエリ文字列を取得| 
 +|session\\ (string $key, $default=null):mixed|セッション変数を取得| 
 +|flash\\ (string $key, $default=null):mixed|フラッシュ変数を取得| 
 +|cookie\\ (string $key, $default=null):string|クッキー変数を取得|
  
 {{fa>folder-open-o}} ** /apricot/core/helpers ** {{fa>folder-open-o}} ** /apricot/core/helpers **
 <code php boilerplates.php> <code php boilerplates.php>
 +/**
 + * Get Input Labels
 + * @param string $message_key
 + * @return array
 + */
 +function inputLabels(string $message_key):array
 +{
 +    $labels = [];
 +    foreach(array_keys(Core\Input::all()) as $name)
 +    {
 +        $dot_key = "{$message_key}.{$name}";
 +        if (Core\Lang::has($dot_key))
 +        {
 +            $labels[$name] = Core\Lang::get($dot_key);
 +        }
 +    }
 +    return $labels;
 +}
 +
 /** /**
  * Get input($_GET or $_POST depending on the method) data  * Get input($_GET or $_POST depending on the method) data
行 901: 行 955:
  * @param string $key  * @param string $key
  * @param mixed $default  * @param mixed $default
- * @return string+ * @return mixed
  */  */
 function session(string $key, $default=null) function session(string $key, $default=null)
行 912: 行 966:
  * @param string $key  * @param string $key
  * @param mixed $default  * @param mixed $default
- * @return string+ * @return mixed
  */  */
 function flash(string $key, $default=null) function flash(string $key, $default=null)
apricot/core/request-class.1588559870.txt.gz · 最終更新: 2020/05/04 11:37 by y2sunlight