変数のタイプ

Chimpanzeeで使用する変数の型は基本的にはPHPに準拠しますが、たとえば配列でも

などといったようにいくつかの異なる構造に分けられます。以下ではこういったChimpanzeeで使用する変数型を説明します。

レコード(record)

複数カラムをもつ1レコードのデータ形式です。

column_name1column_name2...
値1値2...

キーにカラム名、値にカラム値のスカラをとる連想配列形式になります。上記の例では

$record = array(
	'column_name1' => 値1,
	'column_name2' => 値2,
		:
);

このようになります。

レコードセット(records)

複数レコードのデータ形式です。

column_name1column_name2...
値11値12...
値21値22...

レコード形式の配列が複数連なった2次元配列形式になります。上記の例では

$records = array(
	array(
		'column_name1' => 値11,
		'column_name2' => 値12,
			:
	),
	array(
		'column_name1' => 値21,
		'column_name2' => 値22,
			:
	),
		:
);

このようになります。

定数テーブル(table)

IDと対応する値の組

ID
1北海道
2青森県
47沖縄県

を配列にしたものです。IDをキー、IDに対応する値(スカラ)を値とする連想配列になります。上記の例では

array(
	1 => '北海道',
	2 => '青森県',
		:
	47 => '沖縄県',
)

このようになります。IDは整数に限らず文字列を取ることも可能です。

'values' => array(
	'M' => '男性',
	'F' => '女性',
)

参照(reference)

Chimpanzeeの関数やメソッドで引数の値を指定する際、固定値ではなくカラムやフォームの入力タグの値を変数として代入する場合があります。その場合、値の代わりに参照形式の連想配列を指定することでカラムなどの値を動的に代入することができます。
形式はキーに文字列「'ref'」を、値に参照するカラム名もしくは入力タグ名をとる連想配列です。

array('ref' => 'item_code')

たとえば

$params = array('x' => 3);

の場合、連想配列$paramsのキーxの値が固定の3という値になりますが

$params = array('x' => array('ref' => 'number'));

の場合はキーxの値がカラムもしくは入力タグ(いずれになるかは$paramsを利用するコンテキストに依存します)numberの値となります。

フィルタ(filter)

Chimpanzeeでは値のバリデートやコンバート(変換)の処理を行う際、どのような関数を用いてどのように引数を与えて処理するのかというルールを配列で指定します。この配列をフィルタ(配列)といいます。フィルタ配列は

を要素に持つ以下の構造の配列です。

$filter_array = array(
	'func'		=> 'cz_min_char',
	'params'	=> array('n' => 3, 'x' => array('ref' => 'number')),
	'err_msg'	=> 'だめです。',
);

各要素の指定方法等、詳細はフィルタ配列を参照してください。

SQL

モデルでINSERTとUPDATEによって値を登録する際、PHP変数や固定値のみならず、他のカラムの値やSQLクエリの実行結果を代入することができます。値の代わりにSQL形式の連想配列を指定します。形式はキーに文字列「'sql'」を、値にカラム名もしくはSQLクエリ文字列をとる連想配列です。

array('sql' => 'SELECT name FROM ...')

たとえばカラム名を指定する場合は

$add_values = array(
	'coupon_code'	=> $coupon_code,
	'regdate'		=> array( 'sql' => 'NOW()' ),
);

でカラムregdateの値を代入できます。

関数の実行結果を指定する場合は

$add_values = array(
	'coupon_code'	=> $coupon_code,
	'regdate'		=> array( 'sql' => 'NOW()' ),
);

SQLクエリの実行結果を指定する場合は

$add_values = array(
	'coupon_code'	=> $coupon_code,
	'naccount'		=> array( 'sql' => 'SELECT COUNT(*) FROM account WHERE regdate < NOW()' ),
);

さらには以下のように変数を代入することもできます。

$add_values = array(
	'coupon_code'	=> $coupon_code,
	'amount'		=> array(
		'sql' => 'SELECT SUM(price * num) FROM WHERE purchase_id = ' . addslashes($purchase_id)
	),
);

となります。

アクション(action)

フレームワーク内でアクションを特定する配列です。第1要素でアクション名、第2要素でアクショングループ名、第3要素でコントローラ名をそれぞれ文字列で指定します。 アクショングループ名とコントローラ名は省略が指定可能で、その場合同じアクショングループもしくはコントローラになります。たとえば

array('confirm', 'update', 'product')

では

http://mydomain.com/index.php/product/update/confirm/

を指定します。画面遷移を制御するメソッドでアクションを指定する際に使用する配列の形式です。

アクショングループのないコントローラではアクショングループの指定のない形式、すなわち第1要素にアクション名、第2要素にコントローラ名をとる配列となります。

array('index', 'product')

リクエストパラメータ(request parameters)

アクションに付けるリクエストパラメータを特定する連想配列です。要素は

routing
(array) (option) ルーティング形式のURLで与えるパラメータを前から順番に配列で指定します。
get
(array) (option) ルーティング形式のURLではなくGETで与えるパラメータについて、変数名と値の組を連想配列で指定します。

routinggetのいずれかの要素(もしくは両方)が必須となります。

たとえばフロントコントローラののURLが

http://mydomain.com/index.php

でアクションが

$action = array('prepare', 'update', 'user');

で指定される場合(指定方法はアクションを参照)、

$params = array(
	'routing' => array('param1', 'param2'),
	'get' => array(
		'x' => 'param3',
		'y' => 'param4',
	)
);

というリクエストパラメータを付けたURLは

http://mydomain.com/index.php/user/update/prepare/param1/param2?x=param3&y=param4

となります。

これら以外はPHPの変数型に準拠します。

前後のページ

ページトップへ