Response
extends Facade
in package
Class Response
実体は Emitter。ヘッダー値の組み立ては 'response.header-builder'(HeaderBuilder)に委譲している。 独自のセキュリティヘッダー(CSP 等)を差し込みたい拡張は、Emitter のサブクラスを作って ServiceProvider で 'response' を再登録する(Emitter 内部の呼び出しは $this-> の動的ディスパッチ なので、addSecurityHeader() をオーバーライドすれば json() / safeHeaders() 経由にも反映される)。
Table of Contents
Properties
- $container : Container
- $instance : mixed
- $resolvedFacades : mixed
- alias → 解決済みファサードクラス名の逆引き表。
Methods
- __callStatic() : mixed
- addSecurityHeader() : void
- backgroundRedirect() : void
- clearInstance() : void
- テスト用: ファサードがキャッシュしている解決済みインスタンスを破棄する。
- clientCacheHeader() : void
- getInstance() : mixed
- get service instance
- json() : never
- safeHeaders() : void
- setContainer() : void
- swap() : void
- テスト用: サービスインスタンスをスタブ等へ差し替える。
- getServiceAlias() : string
- getServiceInstance() : mixed
- isCache() : bool
Properties
$container
protected
static Container
$container
$instance
protected
static mixed
$instance
$resolvedFacades
alias → 解決済みファサードクラス名の逆引き表。
protected
static mixed
$resolvedFacades
= []
どのサブクラスも再宣言していないため、全ファサード共通で Facade 基底の 1 テーブルを共有する。bind 変更時にどのファサードの static $instance を 破棄すべきか特定するのに使う。値は class-string => true の連想配列にして 重複登録を自然に排除する。
Methods
__callStatic()
public
static __callStatic(string $method, array<string|int, mixed> $arguments) : mixed
Parameters
- $method : string
- $arguments : array<string|int, mixed>
addSecurityHeader()
public
static addSecurityHeader() : void
セキュリティヘッダーを追加する
backgroundRedirect()
public
static backgroundRedirect(string $url[, int $statusCode = = '301' ]) : void
すぐにリダイレクトし、同一プロセスのバックグラウンドで処理を実行
Parameters
- $url : string
- $statusCode : int = = '301'
clearInstance()
テスト用: ファサードがキャッシュしている解決済みインスタンスを破棄する。
public
static clearInstance() : void
isCache() が true のファサードは解決済みインスタンスを静的プロパティ $instance に 保持するため、コンテナ側だけを差し替えても反映されない。本メソッドでキャッシュを 無効化し、次回アクセスでコンテナから再解決させる。
clientCacheHeader()
public
static clientCacheHeader([bool $noCache = = 'false' ]) : void
クライアントキャッシュヘッダーを設定する
Parameters
- $noCache : bool = = 'false'
getInstance()
get service instance
public
static getInstance() : mixed
json()
public
static json(mixed $data) : never
JSON形式のレスポンスを返して終了する
Parameters
- $data : mixed
Return values
neversafeHeaders()
public
static safeHeaders([int $code = = '200' ][, string $mime = = '\'text/html\'' ]) : void
安全なヘッダーを設定し、クライアントキャッシュを無効化する
Parameters
- $code : int = = '200'
- $mime : string = = '\'text/html\''
setContainer()
public
static setContainer(Container $container) : void
Parameters
- $container : Container
swap()
テスト用: サービスインスタンスをスタブ等へ差し替える。
public
static swap(object $instance) : void
DI コンテナのエイリアスを差し替えたうえで、ファサードがキャッシュしている解決済み インスタンス(isCache() が true の場合)を破棄し、次回アクセス時に差し替え後の インスタンスを再解決させる。テスト後は元のインスタンスを渡して再度呼び出し復元する。
Parameters
- $instance : object
getServiceAlias()
protected
static getServiceAlias() : string
Return values
stringgetServiceInstance()
protected
static getServiceInstance(string $alias) : mixed
Parameters
- $alias : string
isCache()
protected
static isCache() : bool