WidgetRules - marmot-cn/marmot-framework GitHub Wiki

控件规范

在框架内所有的字段验证规则统一抽象为一条条的控件规范. 控件规范也要提前约定好. 我们这样是用于避免开发人员各自处理错误和错误提示

这样在项目初期我们定好统一的控件规范(错误提示和错误规范匹配), 然后针对控件规范编写单元测试. 开发人员根据产品的草图, 流程图使用控件约束, 不需要自己单独编写.

后期如果控件有修改, 也可以统一修改.

<?php
namespace WidgetRules\Member;

use Marmot\Core;
use Member\Repository\Member\MemberRepository;

class MemberWidgetRules
{
    public function gender($gender) : bool
    {
        if (!V::numeric()->positive()->validate($gender)) {
            Core::setLastError(GENDER_FORMAT_ERROR, array('pointer'=>'gender'));
            return false;
        }
        return true;
    }

    public function industry($industry) : bool
    {
        if (!V::numeric()->positive()->validate($industry)) {
            Core::setLastError(INDUSTRY_FORMAT_ERROR, array('pointer'=>'industry'));
            return false;
        }
        return true;
    }

    public function email($email) : bool
    {
        if (!empty($email) && !V::email()->validate($email)) {
            Core::setLastError(EMAIL_FORMAT_ERROR);
            return false;
        }
        return true;
    }
    ...

上述代码里面包含控件规范如下:

  • 性别
  • 行业
  • 邮件