これは、ユーザー エンティティ (短縮バージョン) のエンティティ (およびフォーム定義) である可能性があります。
namespace Application\Entity;
use Doctrine\ORM\Mapping as ORM;
use Zend\Form\Annotation as Form;
/**
* @ORM\Entity
* @ORM\Table(name="application_user")
* @Form\Name("user")
* @Form\Hydrator("Zend\Stdlib\Hydrator\ObjectProperty")
*/
class User
{
/**
* @var int
* @ORM\Id @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue
* @Form\Exclude()
*/
protected $id;
/**
* @var string
* @ORM\Column(name="user_name", type="string", length=255, nullable=false)
* @Form\Filter({"name":"StringTrim"})
* @Form\Validator({"name":"StringLength", "options":{"min":1, "max":25}})
* @Form\Validator({"name":"Regex", "options":{"pattern":"/^[a-zA-Z][a-zA-Z0-9_-]{0,24}$/"}})
* @Form\Attributes({"type":"text"})
* @Form\Options({"label":"Username:"})
*/
protected $username;
/**
* @var string
* @ORM\Column(name="email", type="string", length=90, unique=true)
* @Form\Type("Zend\Form\Element\Email")
* @Form\Options({"label":"Your email address:"})
*/
protected $email;
}
そして、このフォームを使用するには:
use Zend\Form\Annotation\AnnotationBuilder;
$builder = new AnnotationBuilder();
$form = $builder->createForm('Application\Entity\User');
// Also possible:
// $form = $builder->createForm(new Application\Entity\User());
そのため、ビルダーは定義クラスの完全修飾名を必要とします。注釈を使用して設定した名前は、たとえばフォームの id 属性を作成するために使用されるフォームの名前です。
use ステートメントがある場合は、名前空間を結合することもできます。
use Zend\Form\Annotation\AnnotationBuilder;
use Application\Entity\User;
$builder = new AnnotationBuilder();
$form = $builder->createForm('User');
// Also possible:
// $form = $builder->createForm(new User());