Задать вопрос

Symfony2 — как проверить, является ли объект определенной сущностью?

Как в symfony2 можно сделать такую проверку?

Есть вот такие объекты которые приходят из формы:

Project\MediaBundle\Entity\File Object
(
    [id:Project\MediaBundle\Entity\File:private] => 
    [name:Project\MediaBundle\Entity\File:private] => Symfony\Component\HttpFoundation\File\UploadedFile Object
        (
            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 2014-04-09 00-25-51.JPG
            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 32347
            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
            [pathName:SplFileInfo:private] => /tmp/phpBvJQSn
            [fileName:SplFileInfo:private] => phpBvJQSn
        )

    [size:Project\MediaBundle\Entity\File:private] => 
    [description:Project\MediaBundle\Entity\File:private] => описание картинки
    [type:Project\MediaBundle\Entity\File:private] => 
)

Project\CurBundle\Entity\Prop Object
(
    [id:Project\CurBundle\Entity\Prop:private] => 
    [value:Project\CurBundle\Entity\Prop:private] => первый текст
    [element:Project\CurBundle\Entity\Prop:private] => 
    [property:Project\CurBundle\Entity\Prop:private] => 
    [property_id:Project\CurBundle\Entity\Prop:private] => 
)


Т.е. два объекта Project\MediaBundle\Entity\File и Project\CurBundle\Entity\Prop. Что это за объекты, заранее неизвестно. Могут быть любыми (из определенного набора).

Можно ли выполнить проверку, типа:

if (isEntityObject('Project\MediaBundle\Entity\File')) {
    echo 'Это объект из нашего проекта типа "файл"';
}
if (isEntityObject('Project\CurBundle\Entity\Prop')) {
    echo 'Это объект из нашего проекта типа "свойство"';
}


Или это можно сделать просто средствами php, что-то я не в курсе :(
  • Вопрос задан
  • 2683 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Если у вас класс находится под namespace Entity, то он и должен быть Entity, если это не так, то нужно вынести эти классы из этого неймспейса.

Entity в контексте Symfony - это обычный класс (не берем в расчет то, что при выборке из базы она оборачивается в proxy). Если вам нужно проверить является ли переменная инстансом класса, то используйте instanceof.

p.s. хранить UploadedFile в Entity не лучшее решение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы