anton_reut
@anton_reut
Начинающий веб-разработчик

Что означают такие языковые конструкции как Post::class, PostType::class и так далее?

Я походу что-то забыл или пропустил но что обозначают в методах такие конструкции типа SomeText::class?
Я понимаю что обозначает например self::class но если вместо self какой то свой текст то что туда попадает?

Примеры из кода Симфони (а так такие штуки вижу и в других приложениях):

class PostType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title')
            ->add('summary', TextareaType::class)
            ->add('content', TextareaType::class)
            ->add('authorEmail', EmailType::class)
            ->add('publishedAt', DateTimeType::class)
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Post::class,
        ]);
    }
}

// И еще: 

public function newAction(Request $request)
{
    $post = new Post();
    $form = $this->createForm(PostType::class, $post);
    // ...
}
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Начиная с PHP версии 5.5 ключевое слово ::class используется для разрешения имени класса. Это означает, что оно возвращает полное имя класса, что особенно полезно, при работе с длинными именами классов. Это тоже самое, что self::class self означает текущий, а Post::class используется для получение имени класса поста.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы