在何处查找属性的可接受值[PHP优先,但可考虑用于所有语言]
我有一个实体,比如说“客户”,这个实体有3种可能的状态:活动的,不活动的和删除的 这3个状态处理3个标签:活动的、不活动的和删除的,它们在表单中、细节中以及可能在列表中使用,因此我们有一个通用数组:在何处查找属性的可接受值[PHP优先,但可考虑用于所有语言],php,class,dependencies,entities,Php,Class,Dependencies,Entities,我有一个实体,比如说“客户”,这个实体有3种可能的状态:活动的,不活动的和删除的 这3个状态处理3个标签:活动的、不活动的和删除的,它们在表单中、细节中以及可能在列表中使用,因此我们有一个通用数组: array( 'active' => 'Active', 'inactive' => 'Inactive', 'deleted' => 'Deleted ); 我通常用一个名为getAcceptedStatus的方法来处理这个问题,该方法返回这个值,但后来我发现
array(
'active' => 'Active',
'inactive' => 'Inactive',
'deleted' => 'Deleted
);
我通常用一个名为getAcceptedStatus的方法来处理这个问题,该方法返回这个值,但后来我发现我必须这样做:
$acceptedStatus = $customer->getAcceptedStatus();
echo $acceptedStatus[$customer->getStatus()];
我觉得还不够好。你(会)怎么处理?我应该创建一个直接返回标签的方法吗?为什么不让
状态本身成为一个实体呢
通过这种方式,您可以为customers status属性分配一个对象实例,而不是乱搞字符串
abstract class Status
{
protected $id;
protected $name;
public function getId();
public function setId($id);
public function getName();
public function setName($name);
}
class CustomerStatus extends Status
{
protected $label;
public function getLabel()
{
return $this->label;
}
public function setLabel($label);
}
然后在customer类中键入hint:
class Customer {
// ...
public function getStatus() {
return $this->status;
}
public function setStatus(CustomerStatus $status) {
$this->status = $status;
}
// ...
}