使用doctrine annotations库获取带注释的对象实例

时间:2018-04-02 18:56:51

标签: php annotations doctrine

我正在尝试编写我的第一个自定义注释类。我在此实体中添加了@Foo(foo="bar")注释。

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use App\Foo;

/**
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 * @Foo(foo="bar")
 */
class User implements \JsonSerializable
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $username;

    public function getId()
    {
        return $this->id;
    }

    public function getUsername(): ?string
    {
        return $this->username;
    }

    public function setUsername(string $username): self
    {
        $this->username = $username;

        return $this;
    }

    public function jsonSerialize()
    {
        return [
            'username' => $this->username,
        ];
    }
}

并创建了这个类:

<?php

namespace App;

/**
 * @Annotation
 */
class Foo
{
    public $foo;

    public function __construct(array $params = [])
    {
        throw new \RuntimeException(
            'Oops! ' . var_export($params, true)
        );
    }
}

异常输出:

Oops! array (
    'allow' => 'username',
)

但这意味着我只有发送数据的可能性。我如何从App\Foo获得App\Entity\User课程?其实我需要发送class作为参数。还有其他可能性吗?

0 个答案:

没有答案