Ground Sunlight

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

ユーザ用ツール

サイト用ツール


サイドバー

メインメニュー

XAMPP アレンジ

IED

WSL2

道具箱

リポジトリ編

フレームワーク編

公開ソフトウェア

メタ
リンク


このページへのアクセス
今日: 2 / 昨日: 0
総計: 1070

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)入力データの削除


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クラスはクッキーの設定及び取得を行うシングルトンで、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):ResponseHTMLヘッダーの追加
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):RenderResponseHTMLテキストの設定
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=[])
:RenderResponse
RenderResponseの生成
テンプレート名とテンプレート変数を指定します
redirect
(string $url)
:RedirectResponse
RedirectResponseの生成
リダイレクトURLを指定します
old
(string $key, $default = null)
キーを指定して前回の入力値を取得します
back():string前回のURIを取得します
errors():ErrorBag前回のエラーバッグを取得します

使用例:

TODO:


コメント

test27.153.185.229, 2022/11/15 21:17

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/

コメントを入力. Wiki文法が有効です:
 
apricot/usage/ja/http.1597481821.txt.gz · 最終更新: 2020/08/15 17:57 by y2sunlight