Symfony 3 形式 - 什么是 ::class 和 where is name


Symfony 3 form - what is ::class and where is name?

:class在Symfony 3的形式中使用了什么?

例如:

->add('task', TextType::class)

$form = $this->createForm(TaskType::class, $task);

我在哪里可以读到方法 ::class

在Symfony2中是:

public function getName()
{
    return 'appbundle_task';
}

接下来我有前缀,例如:

<input id="appbundle_task_name" type="text" name="appbundle_task[name]">

现在在输入中生成名称的原则是什么?

::class用于

类名解析。这样,您可以获得类的完全限定名称 (FQCN)。您可以在文档中阅读有关此内容的信息。

在Symfony 3之前,你必须将类型实例直接传递给FormBuilder::addForm::addFormFactory。现在,您需要改为传递完全限定的类型类名,您可以使用 ::class .

不再需要表单类型的getName(),因为它们现在由其 FQCN 标识。如果要自定义 Twig 中某个类型的块前缀,则应添加 getBlockPrefix

public function getBlockPrefix()
{
    return 'appbundle_task';
}