メインメニュー
XAMPP アレンジ
IED
WSL2
-
道具箱
リポジトリ編
フレームワーク編
公開ソフトウェア
メタ
リンク
- PHP ライブラリ
- PHP 言語
apricot:usage:ja:http目次
文書の過去の版を表示しています。
編集中
Apricot リクエストとレスポンス
リクエスト
Apricotのリクエストクラスは、PHPのスーパーグローバル変数を個別にカプセル化したシングルトンです。リクエスト取得用に以下のシングルトンがあります:
- Input — フォーム送信データ(GET変数またはPOST変数:methodに依存)
- QueryString — クエリ文字列(GET変数)
- Session — SESSION変数
- Flash — 1回限り有効なSESSION変数
- Cookie — COOKIE変数
これらはシングルトンなので、アプリケーションのどこからでもリクエストを取得することができます。
Input
Inputクラスはフォームの送信データを取得するシングルトンで、methodに従って、$_GETまたは$_POSTから生成されます。Inputクラスは後述のQueryStringクラスは同じく
Apricot\Foundation\SimpleInput
クラスをシングルトンにしたものです。使用法: Input::{メソッド}
メソッド 機能 bool has(string $key) キー指定よる入力データの存在確認 string get(string $key, string $default = null) キー指定よる入力データの取得 array all() 全ての入力データの取得 array only(array|mixed $keys) 必要入力データのみの取得 array except(array|mixed $keys) 不要なものを除く入力データの取得 set(string $key, string $vale) 入力データの設定 remove(string $key) 入力データの削除 以下は、典型的な使用例です:
public function insert() { $inputs = Input::all(); // Do something. // ... }
QueryString
QueryStringクラスはクエリ文字列を取得する為のシングルトンです。このクラスは
Apricot\Foundation\SimpleInput
クラスをシングルトンにしたもので、$_GETから生成します。使用法: QueryString::{メソッド}
メソッド 機能 bool has(string $key) キー指定よる入力データの存在確認 string get(string $key, string $default = null) キー指定よる入力データの取得 array all() 全ての入力データの取得 array only(array|mixed $keys) 必要入力データのみの取得 array except(array|mixed $keys) 不要なものを除く入力データの取得 set(string $key, string $vale) 入力データの設定 remove(string $key) 入力データの削除
Session
Sessionクラスはセッション変数を設定及び取得をするシングルトンで、
Apricot\Foundation\SimpleSession
クラスから作ります。Sessionシングルトン後述するフラッシュデータを包含しています。使用法: Session::{メソッド}
メソッド 機能 start() セッションの開始 isStarted():bool セッションが開始されているか否かの判定 has(string $key):bool セッション変数の存在確認 get(string $key, $default = null) セッション変数の取得 set(string $key, $value) セッション変数の設定 remove(string $key) セッション変数の削除 clear() セッション変数のクリア destroy() セッションの破棄 flash():SimpleFlash フラッシュデータの取得 使用例:
TODO:
設定ファイル
セッションには以下の設定ファイルが存在します。
{your-project}/config/setting
- session.setting.php
<?php /** * This file contains session settings. */ return [ 'name' => 'SID'.substr(md5(env('APP_SECRET', env('APP_NAME'))),0,16), 'ini' =>[ 'gc_maxlifetime' => null, /* default: 1440[sec] */ 'gc_probability' => null, /* default: 1 */ 'gc_divisor' => null, /* default: 100 */ 'cookie_lifetime' => null, /* default: 0[sec] */ ], ];
- name — セッション名(初期設定値は環境変数APP_SECRETを使って設定します)
- ini.gc_maxlifetime — サーバに保存されるセッション変数の有効期間(デフォルト値は1440[秒])
- ini.gc_probability — PHPのマニュアルを参照して下さい(既定値は1)
- ini.gc_divisor — PHPのマニュアルを参照して下さい(デフォルト値は100)
- ini.cookie_lifetime — セッションクッキーの有効期間(デフォルト0ではブラウザを閉じたらセッションは破棄されます)
Flash
フラッシュとは、セッション内で一回限りだけ有効なセッション変数(次の画面の遷移のときまで保存される変数)のことです。Flashクラスはフラッシュ変数の設定及び取得を行うシングルトンで、
Apricot\Foundation\SimpleFlash
クラスから作ります。使用法: Flash::{メソッド}
メソッド 機能 has(string $key):bool フラッシュ変数の存在確認 get(string $key, $default = null) フラッシュ変数の取得 set(string $key, $value) フラッシュ変数の設定 remove(string $key) フラッシュ変数の削除 clear() フラッシュ変数のクリア 使用例:
TODO:
Cookie
Cookieクラスはクッキーの設定及び取得を行うシングルトンで、
Apricot\Foundation\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) クッキーの削除 使用例:
TODO:
設定ファイル
クッキーには以下の設定ファイルが存在します。
{your-project}/config/setting
- cookie.setting.php
<?php /** * This file contains cookie settings. */ return [ 'path' => '', 'domain' => '', 'secure' => FALSE, 'httponly' => FALSE, ];
- path — ドメイン上のクッキーが有効なパス(デフォルト値はカレントパス:即ち公開パスpublic)
- domain— クッキーが有効なドメイン(デフォルト値はカレントURLのドメイン)
- secure— TRUEを設定すると、セキュアな接続が存在する場合にのみクッキーを設定します
- httponly— TRUEを設定すると、HTTPを通してのみクッキーを設定します
設定値の詳細は、PHPマニュアルのsetcookieを参照して下さい。
ボイラープレート
リクエスト取得用のボイラープレートには以下の関数があります。input()からcookie()までは、それぞれのリクエスト変数を取得する関数で、HTMLテンプレートでよく使われるます。inputLabels()はInputクラスからバリデーションの項目名を取得するのに便利な関数です。
ヘルパー関数 機能 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クッキー変数を取得 inputLabels
(string $message_key):arrayフォームデータのラベル配列を取得します
レスポンス
Responseクラス
Responseクラスはレスポンスのベースクラスで、その目的はHTMLヘッダーとフラッシュデータの管理です。後述の RenderResponse(レンダリング用) と RedirectResponse(リダイレクト用) はResponseクラスから派生します。Responseクラスは以下のメソッドを持ちます。
メソッド 機能 addHeader($headers):Response HTMLヘッダーの追加 hasFlash(string $key):bool フラッシュデータの存在確認 addFlash(string $key, $value):Response フラッシュデータの追加 commit(int $response_code=null) レスポンスの確定
RenderResponseクラス
RenderResponseクラスはResponseクラスから派生します。HTMLレンダリングを行うレスポンス用のクラスで、以下のメソッドを持ちます。addHeader()などのResponseクラスのメソッドも使用できます。
メソッド 機能 __construct(string $html=null) RenderResponseの生成 setHtml(string $html=null):RenderResponse HTMLテキストの設定 commit(int $response_code=null) レスポンスの確定 アプリケーションでは、直接RenderResponseクラスを使うのではなく、後述する render() 関数を使用します。
RedirectResponseクラス
RedirectResponseクラスはResponseクラスから派生したリダイレクト用のクラスです。リダイレクトではフラッシュデータを使ってリダイレクト先のページにデータを送ることが多いので、フラッシュ用のメソッドが追加されています。RedirectResponseクラスは以下のメソッドを持ちます。addHeader()などのResponseクラスのメソッドも使用できます。
メソッド 機能 __construct(string $url) RedirectResponseの生成 with(string $key, $value):RedirectResponse フラッシュデータの追加 withInputs():RedirectResponse 入力データをフラッシュに追加する withErrors(ErrorBag $errorBag):RedirectResponse エラーバッグをフラッシュに追加する withOldErrors():RedirectResponse 前回のエラーバッグを次のフラッシュに転送する TODO: 以下は、レスポンスで使用するフラッシュデータのキーとその内容です。特に _old_inputs と errors はHTMLテンプレートで良く使用されます。
フラッシュキー 内容 _old_inputs 前回の入力データ _old_path 前回のURIパス errors エラーバッグ アプリケーションでは、直接RedirectResponseクラスを使うのではなく、後述する redirect() 関数を使用します。
ボイラープレート
レスポンス処理用のボイラープレートには以下の関数があります。render()とredirect()はコントローラアクションで、その他はHTMLテンプレートでよく使われる関数です。
ヘルパー関数 機能 render
(string $view=null, array $variables=[])
:RenderResponseRenderResponseの生成
テンプレート名とテンプレート変数を指定しますredirect
(string $url)
:RedirectResponseRedirectResponseの生成
リダイレクトURLを指定しますold
(string $key, $default = null)キーを指定して前回の入力値を取得します back():string 前回のURIを取得します errors():ErrorBag 前回のエラーバッグを取得します 使用例:
TODO:
apricot/usage/ja/http.1597481836.txt.gz · 最終更新: 2020/08/15 17:57 by y2sunlight
コメント
https://www.nike-zoom.us.com/ https://www.michael-jordanshoes.us.com/ https://www.nikehuaraches.us.com/ https://www.nike-airmax98.us/ https://www.pandorabraceletsforwomen.us/ https://www.uncjordan1.us.com/ https://www.nike-clearance.us.com/ https://www.pandoras.us.org/ https://www.fjallravenkankenbackpack.us/ https://www.airjordan1mid.us.com/ https://www.airjordan14.us.com/ https://www.yeezyshoess.us.com/ https://www.nikefreernrun.us.com/ https://www.redbottomshoes-forwomen.us/ https://www.pandoracanadajewelrycharms.ca/ https://www.nike-presto.us.com/ https://www.lebron16shoes.us.org/ https://www.adidas-nmds.us.org/ https://www.redbottomslouboutinshoes.us/ https://www.adidasultra-boosts.us.com/ https://www.new-nikeshoes.us.com/ https://www.nikecortezshox.us.com/ https://www.air-max95.us.com/ https://www.christianlouboutins.us.org/ https://www.yeezys-adidas.us.com/ https://www.air-jordansretro.us.com/ https://www.airjordan9.us.com/ https://www.airjordanshoesretros.us.com/ https://www.nikesclearance.us/ https://www.airmax2019.us.org/ https://www.nikeoutletonline-store.us.com/ https://www.pandora-earrings.us/ https://www.pandoracharmscom.us/ https://www.jewelrycharmsrings.uk.com/ https://www.pandorabracelets-clearance.us.com/ https://www.nikeoutletstoreclearance.us.com/ https://www.nikebasketball-shoes.us.com/ https://www.christianlouboutins.uk.com/ https://www.nikeshoesshop.us.com/ https://www.nikefactory-outlet.us.org/ https://www.nikefactorys.us/ https://www.jordan12s.us.com/ https://www.moncleroutletuk.uk.com/ https://www.menwomenshoes.us/ https://www.nike-stores.us.org/ https://www.nike-outletstoreonlineshopping.us.com/ https://www.lebron-jamesshoes.us.org/ https://www.pandorascharmsjewelry.us/ https://www.ultra-boosts.us.com/ https://www.airforce1shoes.us.com/ https://www.kevin-durantsshoes.us.com/ https://www.jordansretro11.us.com/ https://www.pandoranecklaces.us/ https://www.ferragamosshoes.us.com/ https://www.sneakerswebsite.us/ https://www.lebronjamesshoessale.us.com/ https://www.nikefreerun.us.org/ https://www.christianlouboutins-outlet.us.com/ https://www.jordansretro13.us.com/ https://www.red-bottomheels.us/ https://www.lebron16shoes.us/ https://www.nike-jordan1.us.com/ https://www.pandora-jewelryrings.us/ https://www.nikestores.us.org/ https://www.nikeshoescybermondayblackfriday.us.com/ https://www.newjordanscomingout.us.com/ https://www.yeezyboosts-350.us.com/ https://www.nikereactuptempo.us.com/ https://www.nikestorefactory.us.com/ https://www.airforce-1.us.org/ https://www.nikeshoesonlines.us.com/ https://www.yeezysboosts.us.com/ https://www.pandorashop.ca/ https://www.air-jordans1.us.com/ https://www.airjordan11.us.org/ https://www.jordan1s.us.org/ https://www.golden-gooses.us.com/ https://www.jordan3.us.com/ https://www.newnikeshoes.us.org/ https://www.jordan1high.us.com/ https://www.nike-runningshoes.us/ https://www.airforceones.us.com/ https://www.nikes-sneakers.us.com/ https://www.christianlouboutinshoessaleoutlet.us/ https://www.jewelrynecklacerings.uk.com/ https://www.fjallravenbackpack.us/ https://www.newshoes2019.us/ https://www.ferragamobelts.us.com/ https://www.nikeairmax720.us.com/ https://www.jewelrycharms.us/ https://www.nikeoutlet-factory.us.com/ https://www.jordansshoesformen.us.com/ https://www.jordanshoesforkids.us/ https://www.jordanaj1.us.com/ https://www.nmdr1adidas.us.com/ https://www.valentinoshoessale.us.com/ https://www.nikeoutletstores.us.org/ https://www.nikeshoess.us.org/ https://www.jordan11gammablue.us/ https://www.air-jordan8.us.com/ https://www.adidassneakers.us.com/ https://www.airjordans.com.co/ https://www.airjordan-retro11.us.com/ https://www.jordan32shoes.us/ https://www.nikeairforce.us.org/ https://www.nikeairmax720.us.org/ https://www.pandoracom.ca/ https://www.nikeshoesfactorys.us.com/ https://www.vansshoes-outlets.us.com/ https://www.kyrieirvingbasketballshoes.us.com/ https://www.jordan-retro4.us.com/ https://www.nikerunning-shoes.us.com/ https://www.nikeoutletonlineclearance.us.com/ https://www.nike-outletstores.us.com/ https://www.max97trainers.uk.com/ https://www.nikeair-max.us.org/ https://www.jordanretroshoes.us.org/ https://www.nikeair-jordan.us.com/ https://www.charmsbracelet.uk.com/ https://www.christian-louboutinoutletsale.us.com/ https://www.nikecortez.us.org/ https://www.nikeshoes2019.us.com/ https://www.airjordanssneakers.us.org/ https://www.louboutinshoess.us/ https://www.nikeshoesclearance.us.com/ https://www.nikeoutletstore-onlineshopping.us.org/ https://www.yeezyscheap.us.com/ https://www.airmax-98.us.com/ https://www.nike-basketballshoes.us.org/ https://www.nikeair-max270.us/ https://www.airjordans-sneakers.us/ https://www.jordan7.us.com/ https://www.nikefactorystoreonline.us.com/ https://www.asicsshoesoutlet.us.com/ https://www.christian-louboutin-shoes.us.org/ https://www.pandorascharm.us.com/ https://www.nike--shoes.us.com/ https://www.air-jordan10.us.com/ https://www.nikesneakerssale.us.com/ https://www.nikeoutletstoreonlines.us.com/ https://www.louboutinheelsshoes.us.com/ https://www.pandorasjewelryoutlet.us.com/ https://www.nikeairzooms.us.com/ https://www.pandorajewelryofficialwebsite.us/ https://www.red-bottomshoesforwomen.us.com/ https://www.charmsjewelryrings.uk.com/ https://www.shoesyeezy.us.com/ https://www.cheapnikesshoes.us.com/ https://www.nikeoutletstoreonline-shopping.us.com/ https://www.jordans13retro.us/ https://www.jordan4s.us.com/ https://www.nikesneakersoutlet.us.org/ https://www.shoes-yeezy.us.com/ https://www.kyrie-irvingshoes.us.org/ https://www.runningshoesformenwomen.us/ https://www.yeezy500.us.org/ https://www.christianslouboutin.us.com/ https://www.outletstoreonlineshopping.us/ https://www.nikeshoesfactorystore.us.com/