# 以前のバージョンからの移行

`Zend_Validate`のAPIは、時折変わってきました。 以前のバージョンで`Zend_Validate`とそのサブコンポーネントを使い始めたなら、 新しいAPIを使うようスクリプトを移行するために、下記のガイドラインに従ってください。

## 1.9から1.10以降への移行

### 書かれたアダプタ自身

かかれたバリデータ自身の内部からエラーを返すよう設定するときは、 `_error()`メソッドを呼ばなくてはいけません。 Zend Framework 1.10 以前では、パラメータを与えなくてもこのメソッドを呼び出せました。 そこで、最初に見つかったメッセージテンプレートを使いました。

この振る舞いには、一つ以上の異なるメッセージを返すバリデータを使うときに問題があります。 また、既存のバリデータを拡張すると、予期しない結果を得ることもあります。 このせいで、あなたが期待した通りではないメッセージにユーザーが遭遇することにもなりました。

    My_Validator extends Zend_Validate_Abstract
    {
        public isValid($value)
        {
            ...
            $this->_error(); // 異なるOS間での予期されない結果
            ...
        }
    }

この問題を防ぐために、`_error()`メソッドにパラメータを与えないで呼び出すことは、 もはやできなくなります。

    My_Validator extends Zend_Validate_Abstract
    {
        public isValid($value)
        {
            ...
            $this->_error(self::MY_ERROR); // 定義されたエラー、予期されない結果ではありません
            ...
        }
    }

### 日付バリデータの簡略化

Zend Framework 1.10 以前では、同一の２つのメッセージが、 日付バリデータ内でスローされていました。 これらは、`NOT_YYYY_MM_DD`と`FALSEFORMAT`でした。 Zend Framework 1.10 現在では、 与えられた日付が設定されたフォーマットに一致しない場合、 `FALSEFORMAT`メッセージだけが返されます。

### Alpha、Alnum及びBarcodeバリデータの修正

Zend Framework 1.10 以前では、バーコード・アダプタ２種類と、 Alpha 及び Alnum バリデータ内のメッセージが同一でした。 このため、カスタムのメッセージ、翻訳、 またはこれらのバリデータの複数のインスタンスを使うときに問題がありました。

Zend Framework 1.10 では、定数値は、一意であるように変更されました。 マニュアルで提案されたように定数を使ったときには、変更がありません。 しかし、コードで定数の内容を使ったときには、 それらを変更しなければなりません。 下記の表では変更された値を示します。

#### 利用可能なバリデータのメッセージ

バリデータ | 定数 | 値
--- | --- | ---
Alnum | `STRING_EMPTY` | alnumStringEmpty
Alpha | `STRING_EMPTY` | alphaStringEmpty
Barcode_Ean13 | `INVALID` | ean13Invalid
Barcode_Ean13 | `INVALID_LENGTH` | ean13InvalidLength
Barcode_UpcA | `INVALID` | upcaInvalid
Barcode_UpcA | `INVALID_LENGTH` | upcaInvalidLength
Digits | `STRING_EMPTY` | digitsStringEmpty