/** * 指定されたconfigで変換を実行します。 * * @param mixed $obj * @param array $config */ public function execute(&$obj, &$config) { foreach ($config as $fieldName => $fieldConfig) { foreach ($fieldConfig as $converterName => $attr) { // Converterインスタンスを作成 $converter = $this->container->getPrototype("Teeple_Converter_" . ucfirst($converterName)); if (!is_object($converter)) { throw new Teeple_Exception("Converterのインスタンスを作成できません。({$converterName})"); } // 属性をセット foreach ($attr as $key => $value) { $converter->{$key} = $value; } // Converterを実行 if ($fieldName == self::FIELD_ALL) { $keys = Teeple_Util::getPropertyNames($obj); } else { $keys = array($fieldName); } foreach ($keys as $key) { if (!$converter->convert($obj, $key)) { $this->log->info("{$converterName}は{$key}に対して実行されませんでした。"); } } } } return; }