我正在将ORM(带有SpotORM)和依赖项注入(带有PHP-DI)逐步集成到我的项目中,我想做对。现在,我不知道是应该将实体还是模型作为两个不同的类,或者仅仅是一个。
Entity类如下:
<?php
namespace MyProject\Entity;
use Spot\Entity as Entity;
class Person extends Entity
{
protected static $table = "t_person";
public static function fields()
{
return [
"id" => ["type" => "integer", "primary" => true, "autoincrement" => true],
"firstname" => ["type" => "string", "length" => 50],
"lastname" => ["type" => "string", "length" => 50],
];
}
}
这使我可以使用firstname
或$person->get("firstname")
访问$person->getFirstname()
。
我想创建一个方法getFullName()
,该方法返回名字和姓氏。我的第一个想法是在实体类中编写它,效果很好。
现在,我想使用依赖注入用于类似getSlug()的方法,并使用来自库的Slugifier。但是我不能将其注入构造函数中,因为它具有特定的签名并且仅由SpotORM调用。
所以我认为我需要一个单独的类来将我的方法放入其中,但是ORM对此一无所知,例如,如果我通过关系从Organization实体中获得Person实体的列表,我没有其他方法。
通常的解决方法是什么?