aedart / model
3.3.0
2018-11-25 15:05 UTC
Requires
- php: >=7.1.0
Requires (Dev)
- aedart/license: 1.*
- aedart/license-file-manager: ~1.8
- aedart/scaffold-bundle: ~2.0
- aedart/testing-gst: ~2.0
Suggests
- aedart/dto: This package is ideal for the Data Transfer Object (DTO) abstraction
- aedart/scaffold: console wizard for installing something...
- aedart/scaffold-bundle: A few out of the box scaffolds
README
弃用 - 模型
包已被 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文件