gpt4 book ai didi

php - 如何像文档中那样为 Symfony 2.7 选择实现 ENUM 类?

转载 作者:搜寻专家 更新时间:2023-10-31 21:28:59 25 4
gpt4 key购买 nike

在 Symfony 2.7 中浏览 Choice 表单字段界面的文档时,我一直注意到 top of this page 中的以下片段:

$builder->add('attending', 'choice', array(
'choices' => array(
Status::getInstance(Status::YES),
Status::getInstance(Status::NO),
Status::getInstance(Status::MAYBE),
),
'choices_as_values' => true,
'choice_label' => 'displayName',
));

Status 本质上是在 PHP 中实现一个枚举类。 Symfony 中似乎没有相应的接口(interface)。有谁知道如何优雅地实现像 Status 这样的东西,并允许在一个地方添加更多的值?

最佳答案

class Status {

const STATUS_YES = 1;
const STATUS_MAYBE = 2;
const STATUS_NO = 3;

private $enum;

static public function getInstance($var)
{
return new static($var);
}

private function __construct($var)
{
$this->enum = $var;
}

/**
* @returns boolean
*/
public function is($var)
{
return ($this->enum == $var);
}
}

如果你愿意,你可以使用 Status 作为一个抽象类,从这个类继承所有 Status 并返回相应的对象

关于php - 如何像文档中那样为 Symfony 2.7 选择实现 ENUM 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32326477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com