zms/dot 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

zms/dot

最新稳定版本:v1.0.1

Composer 安装命令:

composer require zms/dot

包简介

属性dot工具

README 文档

README

介绍

Zms\Dot 是一个基于 PHP 8+ 特性构建的轻量级、高安全性的数据模型(DTO/Entity)基础组件。它充分利用了 PHP 的 Attributes(注解)和 Reflection(反射)机制,将数据验证、类型转换、默认值填充等逻辑高度内聚,帮助开发者以“声明式”的方式快速构建健壮的数据传输对象。

安装教程

composer require zms/dot

DOT定义

//赋值请通过初始化或赋值方法赋值,不要直接赋值
<?php
namespace App;

use Zms\Dot\Annotation\Dot;
use Zms\Dot\DotBase;
use Zms\Validate\Type;

class NewsDot extends DotBase
{
    #[Dot(empty: '', default: '默认标题', label: '新闻标题')]
    protected ?string $title;

    #[Dot(default: 0, label: '用户名', validate: [
        [Type::REQUIRED, 'min' => '3', 'max' => '10'],
        [Type::STRING, 'min' => '3', 'max' => '10'],
    ])]
    protected string $name;

    #[Dot(default: 18, fill: true)]
    protected int $sex;
}

使用Dot

<?php
declare(strict_types=1);
use App\NewsDot;
try {
    $data=[
        'title' => '',       // 空值将被替换为配置的 empty 值: ''
        'name' => '张三',     // 触发验证规则,长度符合 3-10
        // 'sex' 未传入,但因为配置了 fill: true,会自动填充为 18
    ];

    // 批量注入数据
    $news = new NewsDot($data);
    
    //或者通过setPropertys赋值
    //$news->setPropertys($data);

    // 安全读取数据
    echo $news->get('title'); // 输出: ''
    echo $news->get('sex');   // 输出: 18

    // 获取全部合法数据
    $data = $news->data(); 
    
} catch (\Zms\Exception\ValidateException $e) {
    // 捕获验证异常
    echo $e->getMessage();
}

注解属性 (#[Dot])

参数类型默认值描述
emptymixednull当写入的数据为空(如 '', [], null)时,以此值替换。
defaultmixednull数据的默认值。当值为空且未配置 empty 时生效,或用于自动填充。
labelstring''字段业务名称。用于验证失败时生成友好的错误提示。
fillboolfalse是否自动填充。为 true 时,初始化会自动注入 defaultempty 值。
validatearray[]验证规则数组。对接 Zms\Validate 验证器。

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固