コード例 #1
0
ファイル: ConverterManager.php プロジェクト: miztaka/teeple2
 /**
  * 指定された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;
 }
コード例 #2
0
ファイル: ValidatorManager.php プロジェクト: miztaka/teeple2
 /**
  * 指定されたconfigでバリデーションを実行します。
  * エラーがあった場合はエラーメッセージを組み立てて
  * Requestにメッセージを追加します。
  *
  * @param object $obj
  * @param array $config
  * @return boolean
  */
 public function execute($obj, &$config)
 {
     $result = TRUE;
     foreach ($config as $fieldConfig) {
         $fieldName = $fieldConfig['name'];
         foreach ($fieldConfig['validation'] as $validatorName => $attr) {
             // Validatorインスタンスを作成
             $validator = $this->container->getPrototype("Teeple_Validator_" . ucfirst($validatorName));
             if (!is_object($validator)) {
                 throw new Teeple_Exception("Validatorのインスタンスを作成できません。({$validatorName})");
             }
             // 属性をセット
             foreach ($attr as $key => $value) {
                 $validator->{$key} = $value;
             }
             // Validatorを実行
             if (!$validator->validate($obj, $fieldName)) {
                 $result = FALSE;
                 // エラーメッセージをセット
                 $this->setErrorMessage($validator, $validatorName, $attr, $fieldConfig);
                 break;
             }
         }
     }
     return $result;
 }
コード例 #3
0
ファイル: ActionChain.php プロジェクト: miztaka/teeple2
 /**
  * Actionを追加する
  *
  * @param   string  $name   Actionのクラス名
  */
 public function add($name)
 {
     // Actionのクラス名をチェック
     if (!preg_match("/^[0-9a-zA-Z_]+\$/", $name)) {
         throw new Teeple_Exception("Actionクラス名が不正です。");
     }
     // Actionクラスのインスタンス化
     $className = Teeple_Util::capitalizedClassName($name);
     $action = $this->container->getPrototype($className);
     $base = 'Teeple_ActionBase';
     if (!is_object($action) || !$action instanceof $base) {
         throw new Teeple_Exception("Actionクラスの生成に失敗しました。({$className})");
     }
     array_push($this->_list, $action);
     return;
 }
コード例 #4
0
 /**
  * 新しいトランザクションを取得します。
  *
  * @return Teeple_Transaction
  */
 public function getTransaction()
 {
     $tx = $this->container->getPrototype('Teeple_Transaction');
     $this->txs[] = $tx;
     return $tx;
 }