lfbn/base-model

这是一个基础模型,可以扩展以定义模型。它有助于处理数据验证和提取数据。

1.0.5 2018-02-25 23:40 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:21:03 UTC


README

这是一个基础模型,可以扩展以定义模型。它有助于处理数据验证和数据转换。

特性

  • 属性验证。除了isNotEmpty外,如果数据为空,则不会验证数据。以下验证器可用:
    • isNotEmpty
    • isNumeric
    • isInteger
    • isFloat
    • isString
    • isBoolean
    • isTrue
    • isFalse
    • isNull
    • isNotNull
    • isArray
    • isEmail
  • 将模型转换为数组和JSON,保留隐藏属性。
  • 使用数据数组定义属性。
  • 可以定义在验证失败时是否抛出异常。
  • 可以定义数据是否应该被验证。

安装方法

composer require lfbn/base-model

示例

如何使用它

通过扩展AbstractBaseModel定义您的模型,然后实现一个公开方法getValidationRules。此方法应定义您想要验证的属性。

以下是一个示例

class User extends AbstractBaseModel
{

    /**
     * @var int
     */
    protected $id;

    /**
     * @var string
     */
    protected $name;

    /**
     * @var float
     */
    protected $height;

    /**
     * @var boolean
     */
    protected $active;

    /**
     * @return int
     */
    public function getId(): int
    {
        return $this->id;
    }

    /**
     * @param int $id
     */
    public function setId(int $id): void
    {
        $this->id = $id;
    }

    /**
     * @return string
     */
    public function getName(): string
    {
        return $this->name;
    }

    /**
     * @param string $name
     */
    public function setName(string $name): void
    {
        $this->name = $name;
    }

    /**
     * @return float
     */
    public function getHeight(): float
    {
        return $this->height;
    }

    /**
     * @param float $height
     */
    public function setHeight(float $height): void
    {
        $this->height = $height;
    }

    /**
     * @return bool
     */
    public function isActive(): bool
    {
        return $this->active;
    }

    /**
     * @param bool $active
     */
    public function setActive(bool $active): void
    {
        $this->active = $active;
    }

    /**
     * @return array
     */
    public function getValidationRules()
    {
        return [
            ['property' => 'id', 'validator' => 'isNotEmpty'],
            ['property' => 'id', 'validator' => 'isInteger'],
            ['property' => 'height', 'validator' => 'isFloat'],
            ['property' => 'active', 'validator' => 'isBoolean']
        ];
    }
}

如何知道是否有效?

您需要调用validate()方法

$user = new User();
$user->validate();

我可以使用自己的验证器吗?

是的。只需实现IValidator接口即可。

$user = new User();
$myValidator = new MyValidator();
$user->setValidator($myValidator);

我可以使用自己的转换器吗?

是的。只需实现IConverter接口即可。

$user = new User();
$myConverter = new MyConverter();
$user->setConverter($myConverter);

关于

要求

  • 基础模型与PHP 7或更高版本兼容。

运行测试

您可以通过执行以下命令运行测试。在运行这些测试之前,请确保已运行composer install

composer test

提交错误和功能请求

错误和功能请求在GitHub上跟踪

许可

基础模型采用MIT许可 - 有关详细信息,请参阅LICENSE文件