aedart/model

此包已被弃用且不再维护。作者建议使用 aedart/athenaeum 包。

集合了各种特性实现的各种getter- / setter-接口,用于不同类型的“常见”属性。

3.3.0 2018-11-25 15:05 UTC

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

弃用 - 模型

包已被 aedart/athenaeum 替换 所有已知组件已迁移到 Athenaeum 包

集合了各种获取器和设置器-接口,以及各种特性实现,用于不同类型的“常见”属性。可用于创建 DTOs

内容

何时使用此包

  • 当需要明确指定给定对象上必须有哪些属性时
  • (当多个对象共享相同的属性时)

如何安装

composer require aedart/model

此包使用 composer。如果你不知道这是什么或者它是如何工作的,我建议在使用此包之前先阅读一些相关信息。

快速入门

创建你的接口

在以下示例中,我们创建一个简单的个人接口,包括id、姓名和描述;

<?php

namespace Acme\Contracts;

use Aedart\Model\Contracts\Integers\IdAware;
use Aedart\Model\Contracts\Strings\DescriptionAware;
use Aedart\Model\Contracts\Strings\NameAware;

interface Person extends
    IdAware,
    NameAware,
    DescriptionAware
{
    
}

具体实现

使用默认提供的特性,以创建接口的具体实现;

<?php

namespace Acme\Models;

use Acme\Contracts\Person as PersonInterface;
use Aedart\Model\Traits\Strings\DescriptionTrait;
use Aedart\Model\Traits\Strings\IdTrait;
use Aedart\Model\Traits\Strings\NameTrait;

class Person implements PersonInterface
{
    use IdTrait;
    use NameTrait;
    use DescriptionTrait;   
}

可用属性

属性 支持的类型
A
动作 string
地址 string
年龄 int
代理 string
别名 string
金额 int, float
周年纪念日 int, string
区域 string
询问 bool
作者 string
B
基础路径 string
开始 string
出生日期 int, string
品牌 int, string
建筑编号 string
C
日历 string
卡号 string
持卡人 string
卡类型 string
类别 array
分类 string
选择 array
城市 string
类别 string
代码 string
颜色 string
string
评论 string
公司 string
内容 string
国家 string
创建于 int, string
货币 string
D
数据 array
数据库 string
日期 int, string
去世日期 int, string
已删除时间 int, string
交付时间 int, string
送货地址 string
送货日期 int, string
深度 int, float
描述 string
目录 string
折扣 int, float, string
距离 int, float, string
域名 string
持续时间 int, float, string
E
Ean13 string
Ean8 string
Ean string
版本 int, string
邮箱 string
结束 string
结束日期 int, string
错误 int, string
事件 int, string
过期时间 int, string
F
文件扩展名 string
文件名 string
文件路径 string
string
格式 string
格式化名称 string
G
性别 string
int, string
H
高度 int, float
主机 string
Html string
I
Iata string
Iban string
Icao string
Id int, string
标识符 int, string
图像 string
索引 int, string
发票地址 string
Ip string
IpV4 string
IpV6 string
IsicV4 string
Isbn string
Isbn10 string
Isbn13 string
J
Json string
K
Key string
种类 string
L
标签 string
语言 string
string
纬度 float, string
长度 int, float
许可证 int, string
区域设置 string
位置 int, string
位置 array
标志 string
经度 float, string
M
Mac地址 string
制造商 string
材料 string
媒体类型 string
消息 string
方法 int, string
中间名 string
N
名称 string
昵称 string
O
订单号 int, string
组织 string
输出路径 string
P
包裹 string
密码 string
路径 string
模式 string
电话 string
照片 string
邮政编码 string
前缀 string
价格 int, float, string
生产时间 int, string
生产日期 int, string
配置文件 string
购买时间 int, string
购买日期 int, string
Q
数量 int, float
查询 string
问题 string
R
排名 int, float, string
比率 int, float, string
评分 int, float, string
区域 string
发布时间 int, string
发布日期 int, string
修订版 string
角色 string
int
S
大小 int, float, string
脚本 string
别名 string
源码 string
Sql string
开始日期 int, string
状态 int, string
状态 int, string
街道 string
后缀 string
Swift string
T
string
标签 string
标签 array
模板 string
文本 string
超时 int
时间戳 int
时区 string
标题 string
顶级域名 string
主题 string
类型 int, string
U
更新时间 int, string
网址 string
用户名 string
Uuid string
V
string, mixed
Vat int, float, string
供应商 string
版本 string
W
重量 int, float
宽度 int, float
通配符 string
X
X int, float, mixed
Xml string
Y
Y int, float, mixed
Z
Z int, float, mixed
区域 int, string

随着我其他项目的进展,将添加更多属性...

贡献

你是否发现了缺陷( 错误或设计缺陷 ),或者希望进行改进?在以下章节中,你可能找到一些有用的信息,了解你可以如何帮助这个项目。无论如何,我感谢你抽出时间帮助我改进这个项目的交付成果和整体质量。

错误报告

如果你确信你发现了一个错误,那么至少你应该创建一个新的问题。在该问题中,你应该至少描述以下内容;

  • 缺陷位于何处
  • 对缺陷的良好、简短、精确的描述(为什么它是缺陷)
  • 如何复制缺陷
  • 可能的解决缺陷的方法

当有时间时,我将审查你的问题并采取行动。

分叉、编写代码并发送拉取请求

一份良好且写得好的错误报告可以帮到我很多。然而,如果您可以选择或希望自行解决缺陷,以下是您可以这样做的步骤:

  • 分叉此项目
  • 为修复特定缺陷创建一个新的本地开发分支
  • 编写您的代码/更改
  • 创建可执行测试用例(证明您的更改是稳固的!)
  • 提交并将您的更改推送到您的分叉仓库
  • 发送包含您的更改的拉取请求
  • 喝一杯啤酒 - 您应得的 :)

一旦我收到您的拉取请求(并且有时间处理),我将审查您的更改并将它们合并到这个项目中。如果没有,我将通知您我选择不合并的原因。

致谢

  • PHPStorm JetBrains;为开发最好的PHP IDE,并支持此及其他开源项目
  • PHPUnit Sebastian Bergmann;神啊……我们仍然知道一些开发者、经理和决策者,他们认为优秀的软件根本不需要测试!我们没有想过在没有像PHPUnit这样的优秀测试工具的项目上工作。
  • Codeception Michael Bodnarchuk;让PHPUnit变得更好。
  • Composer & Packagist Nils Adermann, Jordi Boggiano & et al.;PHP社区发生过的最好的事情之一。
  • Git Software Freedom Conservancy;没有它……我们可能仍然停留在软件开发“石器时代”。
  • Laracasts Jeffrey Way et al.;物有所值……
  • PHP Rasmus Lerdorf & The PHP Group;我们可能还在用老式的ASP开发这个项目……(打了个寒颤!)

版本管理

此软件包遵循语义版本控制2.0.0

许可

BSD-3-Clause,请阅读此软件包中包含的LICENSE文件