まだまだvalidationどうしよう

validationの方法なのだけれど、Ethnaのアクションフォームのパラメータ定義っぽく書けるようにするというのはどうだろう(思いつきベース)。

<?php
class Foo
{
    var $validations = array(
        'name' => array(
            'required' => array(
                'message' => '名前は必ず入力してください'
            ),
            'length' => array(
                'min' => 0,
                'max' => 100,
                'function' => 'mb_strlen',
                'message' => '名前は100文字以内で入力してください'
            )
        )
    );

    function execute($c)
    {
        if ($c->is_error) {
            // validationエラー時の処理
        }

        // 正常処理
    }
}

複雑になった場合はYAMLとかで設定ファイルにしてしまった方がわかりやすいな…。