我正在尝试编写我的第一个自定义注释类。我在此实体中添加了@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作为参数。还有其他可能性吗?