jin2chen/form-model

该软件包帮助实现数据录入表单。

dev-master / 1.0.x-dev 2021-06-16 08:38 UTC

This package is auto-updated.

Last update: 2024-09-10 14:34:04 UTC


README

该软件包帮助实现数据录入表单。

Build status static analysis Scrutinizer Code Quality Code Coverage

安装

该软件包可以通过composer安装

composer require jin2chen/form-model --prefer-dist

使用方法

您必须通过扩展抽象表单类来创建您的表单模型,定义所有私有属性及其相应的类型提示。

示例:LoginForm.php

<?php

declare(strict_types=1);

namespace App\Form;

use jin2chen\FormModel\FormModel;
use Yiisoft\Validator\Rule\Email;
use Yiisoft\Validator\Rule\Required;
use Yiisoft\Validator\Rule\HasLength;
use Yiisoft\Validator\Validator;

class LoginForm extends FormModel
{
    public string $username = '';
    public string $password = '';
    public bool $rememberMe = false;

    /** Add rules */
    public function getRules(): array
    {
        return [
            'login' => $this->loginRules()
        ];
    }

    private function loginRules(): array
    {
        return [
            Required::rule(),
            HasLength::rule()
                ->min(4)
                ->max(40)
                ->tooShortMessage('Is too short.')
                ->tooLongMessage('Is too long.'),
            Email::rule()
        ];
    }
}

$form = new LoginForm();
$validator = new Validator();
$results = $validator->validate($form);
$results->isValid();

单元测试

该软件包使用 PHPUnit 进行测试。要运行测试

./vendor/bin/phpunit

静态分析

代码使用 Psalm 进行静态分析。要运行静态分析

./vendor/bin/psalm