在哪里可以找到属性的接受值 [PHP 首选,但可以考虑用于所有语言]


Where to locate accepted values for an attribute [PHP preffered but can be considered for all languages]

我有一个实体,假设"客户",这个实体有 3 种可能的状态:活动非活动和已删除

这 3 个状态处理 3 个标签:活动非活动和已删除,它们用于表单、详细信息以及可能在列表中,所以我有一个通用数组:

array(
   'active' => 'Active',
   'inactive' => 'Inactive',
   'deleted' => 'Deleted
);

我通常做的是在一个名为getAcceptStatus的方法中处理这个问题,该方法返回此值,但后来我发现我必须做这样的事情:

$acceptedStatus = $customer->getAcceptedStatus();
echo $acceptedStatus[$customer->getStatus()];

我觉得它不够好。你(你会)如何处理它?我应该创建一个直接返回标签的方法吗?

为什么不让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);
}      

然后在客户类中键入提示:

class Customer {
  // ...
  public function getStatus() {
    return $this->status;
  }
  public function setStatus(CustomerStatus $status) {
   $this->status = $status;
  }
  // ...
}
相关文章: