Agavi-0.11 系での ReturnArrayConfigHandler の使い方
%core.config_dir%/config_handler.xml
<?xml version="1.0" encoding="UTF-8"?> <configurations xmlns="http://agavi.org/agavi/1.0/config" parent="%core.system_config_dir%/config_handlers.xml"> <configuration> <handlers> <handler class="AgaviReturnArrayConfigHandler" pattern="%core.config_dir%/hoge.xml"> <!--以下のパラメータは全てデフォルト値なので書かなくても同じ--> <parameter name="id_attribute">name</parameter> <parameter name="value_key">value</parameter> <parameter name="force_array_values">false</parameter> <parameter name="attribute_prefix"></parameter> <parameter name="literalize">true</parameter> </handler> </handlers> </configuration> </configurations>
hoge.xml の中身
<?xml version="1.0" encoding="utf-8"?> <configurations xmlns="http://agavi.org/agavi/1.0/config"> <configuration> <param>1</param> <param>2</param> <param>3</param> </configuration> </configurations>
設定を読み込む
$hoge = include(AgaviConfigCache::checkConfig(AgaviConfig::get('core.config_dir') . "/hoge.xml"));
$hoge の中身は、
array('params' => array('1', '2', '3'))
※paramではなく、paramsになる。
各パラメータの働き
id_attribute
例)1
id_attribute = "name" なら、
⇒ array('params' => array('name' => 'hoge', 'value' => 1)
id_attribute != "name" なら、
⇒ array('params' => array('hoge' => 1))
force_array_values
例)1
force_array_values = true なら、
⇒ array('params' => array('value' => 1))
force_array_values = false なら、
⇒ array('params' => 1))
※ 1 ならば、 force_array_values の値に関わらず、
⇒ array('params' => array('attr1' => 'value1', 'value' => '1'))
attribute_prefix
例)1
attribute_prefix = "attr_" ならば、
⇒ array('params' => array('attr_attr1' => 'value1')
literalize
察してください。
突貫で書いたので分かりにくいけど勘弁。