예제 #1
0
 /**
  * 指定された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;
 }