\BEAR_Ro

リソースオブジェクト

リソースのリソースオブジェクトクラスです。
リソースの内容とリソースに対するCRUDインターフェイスを備えています。
ボディ情報(リソース状態)、メタ情報(リソースヘッダー)、リソースリンク、
状態コードのプロパティを持ち、リソースの作成、読み込み、変更、削除の
インターフェイスを持つ事ができます。

BEAR_Resouceクラスがリソースを扱うクラスなのに対して、
リソースとして扱われるがこのクラスのオブジェクトです。
CSVファイルなどのスタティックリソースや、外部RSS等のリモートリソースも
このリソースオブジェクトに変換されて扱われます。

このオブジェクトはHTTP通信の仕組みそのものにも似ています。
ヘッダーとボディを持ち、POST/GET/PUT/DELETEに対応する
インターフェイス(onCreate, onRead, onUpdate, onDelete)を持ちます。
このオブジェクトそのものをHTTP出力することができます。x
ml/json/phpなどのフォーマットを指定して
outputHttp()メソッドを使うとそのままHTTP出力されます。

Example. オブジェクト格納例)DBページャーの結果RO

ボディ : ページングされたデータ
ヘッダー: 件数や現在の表示ページ番号などのメタ情報
リンク : 次ページリンクHTML
コード  : 200(OK)

以下は指定したフォーマットで時間を取得できるmyTimeリソースの実装例です。

class myTime extends BEAR_Ro { public function onRead($values){ $format = $values['format']; retruen date($format); } }

※ 時間は削除、変更、作成はできないのでreadメソッドだけが実装されています。
※ returnのフォーマットは2種類あります。
RAWデータ(配列やスカラー値)かリソースオブジェクトです。

データだけを返せば十分なときはRAWデータでデータにヘッダーやリンクなどの
属性情報をつけて返したい場合はリソースオブジェクト(BEAR_ROオブジェクト)
で返します。

Summary

Methods
Properties
Constants
__construct()
onInject()
onCreate()
onRead()
onUpdate()
onDelete()
onLink()
assert()
assertRequired()
getBody()
getHeaders()
getHeader()
getLinks()
setBody()
setHtml()
setHeader()
setHeaders()
setLink()
setLinks()
setCode()
getCode()
toString()
__toString()
__invoke()
outputHttp()
getIterator()
getIterator1()
count()
set()
setConfig()
getConfig()
setService()
getRo()
getHtml()
No public properties found
CODE_OK
CODE_BAD_REQUEST
CODE_ERROR
CONFIG_PAGER
_exception()
$_config
N/A
No private methods found
$_body
$_headers
$_links
$_html
$_code
$_page
N/A

Constants

CODE_OK

CODE_OK

コード OK

CODE_BAD_REQUEST

CODE_BAD_REQUEST

コード Bad Request

CODE_ERROR

CODE_ERROR

コード Internal Error

CONFIG_PAGER

CONFIG_PAGER

set() configキー

Properties

$_config

$_config : array

コンフィグ

Type

array

$_body

$_body : mixed

ボディ

Type

mixed

$_headers

$_headers : array

メタ情報

Type

array

$_links

$_links : array

リンク情報

Type

array

$_html

$_html : string

HTML(文字列)

Type

string

$_code

$_code : integer

状態コード

Type

integer — BEAR::CODE_OK | BEAR::CODE_BAD_REQUEST | BEAR::CODE_ERROR

$_page

$_page : mixed

ページ

デフォルトではレジストリのpage(カレントのページ)

Type

mixed

Methods

__construct()

__construct(array  $config) 

Constructor

Parameters

array $config

onInject()

onInject() : void

Inject

onCreate()

onCreate(array  $values) : mixed

リソース作成

リソースを作成します。このメソッドはキャッシュオプションが使えます。

Parameters

array $values

引数

Returns

mixed

onRead()

onRead(array  $values) : mixed

リソース読み込み

オプションにcacheが使えます

Parameters

array $values

引数

Returns

mixed

onUpdate()

onUpdate(array  $values) : mixed

リソース変更

リソースを変更します。このメソッドはPOEオプション (一度だけ実行する)オプションが使えます。

Parameters

array $values

引数

Returns

mixed

onDelete()

onDelete(array  $values) : mixed

リソース消去

リソースを消去します。このメソッドはPOEオプション (一度だけ実行する)オプションが使えます。

Parameters

array $values

引数

Returns

mixed

onLink()

onLink(array  $values) : array

リンク

Parameters

array $values

Returns

array

assert()

assert(boolean  $bool, string  $msg = 'Bad Resource Request (assert)') : void

シンプルアサーション

単純なboolean値を引数にしてfalseの時は例外を投げ、
リソースの結果は400エラー(Bad Request)のリソースオブジェクト(BEAR_Roオブジェクト)になります。
onRead, onCreateなどCRUDメソッドに値が正しく渡されているか確認するために使用します。
再利用のためにAOPアドバイスですることも検討してください。

Parameters

boolean $bool

条件

string $msg

エラー例外のinfo

Throws

\Exception

assertRequired()

assertRequired(array  $keys, array  $values) : void

必須項目アサーション

連想配列に指定のキー配列が全て含まれてるか検査し、問題があれば例外を投げます。
リソースの結果は400エラー(Bad Request)のリソースオブジェクト(BEAR_Roオブジェクト)になります。
onRead, onCreateなどCRUDメソッドに値が正しく渡されているか確認するために使用します。

Parameters

array $keys

必須キー配列

array $values

テストする配列

Throws

\BEAR_Exception

getBody()

getBody() : mixed

リソースボディの取得

ボディ(リソース取得結果本体)を取得します。

Returns

mixed

getHeaders()

getHeaders() : array

リソースヘッダーの取得

Returns

array

getHeader()

getHeader(  $headerKey) : null

リソースヘッダーの取得

Parameters

$headerKey

Returns

null

getLinks()

getLinks() : array

リソースリンクの取得

リソースのリンクを取得します。

Returns

array

setBody()

setBody(mixed  $body) : \BEAR_Ro

リソースボディをセット

リソースのボディ(リソース結果)をセットします。

Parameters

mixed $body

ボディ

Returns

\BEAR_Ro

setHtml()

setHtml(  $html) : \BEAR_Ro

リソースHTMLの指定

Parameters

$html

Returns

\BEAR_Ro

setHeader()

setHeader(string  $key, string  $header) : \BEAR_Ro

リソースヘッダーセット

キーを指定してリソースヘッダーをセットします。
予約済みキーはこのクラスのconstとして定義されています。

Parameters

string $key

ヘッダーキー

string $header

ヘッダー

Returns

\BEAR_Ro

setHeaders()

setHeaders(array  $headers) : \BEAR_Ro

ヘッダーのセット

Parameters

array $headers

ヘッダー配列

Returns

\BEAR_Ro

setLink()

setLink(string  $key, string  $link) : \BEAR_Ro

リンクのセット

リソースリンクをセットします。
予約済みキーはこのクラスのconstとして定義されています。

Parameters

string $key

リンクキー

string $link

リンク

Returns

\BEAR_Ro

setLinks()

setLinks(array  $links) : \BEAR_Ro

リンクをセット

Parameters

array $links

リンク

Returns

\BEAR_Ro

setCode()

setCode(integer  $code) : \BEAR_Ro

状態コード設定

Parameters

integer $code

コード

Returns

\BEAR_Ro

getCode()

getCode() : integer

コードの取得

Returns

integer —

(200|400|500)

toString()

toString() : string

リソースの文字列化

変数状態のリソース(body)にテンプレートを適用して文字列化します。
テンプレート指定がない場合、スカラー値ならそのまま、スカラー値でないなら''になります。
プロトタイプリソース(リクエストをまだ行っていないリソース)の場合は実リクエストを行った後に文字列化を行います。
このメソッドはRoクラスのマジックメソッドとして機能します。

Returns

string

__toString()

__toString() : string

マジックメソッド - 文字列化

Returns

string

__invoke()

__invoke(array  $values) : mixed

関数としての振る舞い

Parameters

array $values

Returns

mixed

outputHttp()

outputHttp() : void

HTTP出力

BEAR_RoリソースオブジェクトをHTTP出力します。
_codeプロパティがレスポンスコード、_header配列プロパティのうち
文字列のものがHTTPヘッダー,_bodyプロパティがHTTPボディとして出力されます。

getIterator()

getIterator() : \IteratorAggregate

イテレーター

optionsで指定したイテレーター、もしくはdefaultのArrayIteratorが使用されます

Returns

\IteratorAggregate

getIterator1()

getIterator1() : \Traversable

Create a new iterator from an ArrayObject instance

Returns

\Traversable

count()

count() : integer

count取得

arrayとして振舞うための実装です。

Returns

integer

set()

set(string  $key = null) : \BEAR_Ro

ビューにセット

readの後ろにつなげて使います。

$config
'pager' string ページャーをアサインする変数名
'ro'    bool   ROアサイン

$resource->$read($params)->set('user');

Parameters

string $key

テンプレート変数名 省略すればURI(/を_に置換)

Returns

\BEAR_Ro

setConfig()

setConfig(mixed  $config, mixed  $values = null) : \BEAR_Ro

Set config

Parameters

mixed $config

(string) コンフィグキー | (array) コンフィグ配列

mixed $values

(string) $configの時のコンフィグ値

Returns

\BEAR_Ro

getConfig()

getConfig(null  $key = null) : array|mixed

コンフィグ取得

Parameters

null $key

Returns

array|mixed

setService()

setService(string  $name, object  $service) : void

サービスセット

Parameters

string $name

プロパティ

object $service

サービス

getRo()

getRo() : \App_Ro

Ro取得

link()がついてるリソースでもgetRo()で取得されるのは最初のリソースです。

Returns

\App_Ro

getHtml()

getHtml() : string

HTML取得

Returns

string

_exception()

_exception(string  $msg, array  $config) : \Exception

例外の作成

Parameters

string $msg
array $config

Returns

\Exception