更新日志 1.10.0 — 2024 年 3 月 12 日¶
重要变更¶
放弃对 PHP 8.0 的支持
PHP 8.0 安全支持已于 2023 年 11 月 26 日结束。因此,我们在此版本中放弃对 PHP 8.0 的支持。
如果发现任何安全问题,如果人们需要的话,我们可能会考虑将修复程序向后移植到 1.9.x 版本,但我们强烈建议将您的应用程序升级到受支持的 PHP 版本。
Constructor特性介绍
期待已久的功能已登陆图书馆!
Constructor特性可以分配给对象内的任何方法,以自动将该方法标记为类的构造函数。这是比使用MapperBuilder::registerConstructor方法更方便的注册构造函数的方法,尽管它并不能取代它。
Constructor特性所针对的方法必须是公共的、静态的,并返回它所属类的实例。
final readonly class Email
{
// When another constructor is registered for the class, the native
// constructor is disabled. To enable it again, it is mandatory to
// explicitly register it again.
#[\CuyZ\Valinor\Mapper\Object\Constructor]
public function __construct(public string $value) {}
#[\CuyZ\Valinor\Mapper\Object\Constructor]
public static function createFrom(
string $userName, string $domainName
): self {
return new self($userName . '@' . $domainName);
}
}
(new \CuyZ\Valinor\MapperBuilder())
->mapper()
->map(Email::class, [
'userName' => 'john.doe',
'domainName' => 'example.com',
]); // john.doe@example.com
新功能¶
- 引入
Constructor特性( d86295 )