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'))

value_key

上記、「force_array_values が true」の場合の、'value'

attribute_prefix

例)1


attribute_prefix = "attr_" ならば、

⇒ array('params' => array('attr_attr1' => 'value1')

literalize

察してください。


突貫で書いたので分かりにくいけど勘弁。