我正在做一个测试,看到这个函数:
Class Object{
use Timestampable;
}
$object= new Object();
$object->setCreatedAt(new DateTime());
我认为这是一个陷阱问题,因为我在php manual中找不到“时间戳”。
我在stackoverflow上看到过对它的引用,这让我很困惑它是否真的可以使用。我知道MySQL数据库中有时间戳,但它真的存在或在PHP中有用途吗?
我正在做一个测试,看到这个函数:
Class Object{
use Timestampable;
}
$object= new Object();
$object->setCreatedAt(new DateTime());
我认为这是一个陷阱问题,因为我在php manual中找不到“时间戳”。
我在stackoverflow上看到过对它的引用,这让我很困惑它是否真的可以使用。我知道MySQL数据库中有时间戳,但它真的存在或在PHP中有用途吗?
2条答案
按热度按时间jvidinwx1#
时间戳就是所谓的trait,它旨在帮助重用代码。
假设你有一堆实体,它们都有一些共同的功能,例如,它们都需要
$createdAt
和$updatedAt
字段。你可以通过为所有实体创建一个共同的基类来实现这个功能,但从架构的Angular 来看,这并不好。相反,你可以创造一个特质:
然后像这样使用它:
现在
User
对象将有$createdAt
字段和trait中定义的任何其他字段或方法,就像它们在User
类中定义的一样,这样你就不需要在所有类中重复相同的代码。时间戳是一个更常见的特性,但显然特性并不局限于此。
xdnvmnnf2#
测试的问题不是关于
Timestampable
函数的,那只是一个例子。这个问题是根据你对抽象类,接口和特性的知识设计的。