私は Symfony2 の使い方を学んでいますが、私が読んだドキュメントでは、Symfony フォームで使用されているすべてのエンティティには空のコンストラクターがあるか、まったくコンストラクターがありません。(例)
http://symfony.com/doc/current/book/index.html第 12 章
http://symfony.com/doc/current/cookbook/doctrine/registration_form.html
作成時に特定の情報を要求するために、コンストラクターをパラメーター化しました。Symfony のアプローチは、その強制を検証プロセスに任せることであり、基本的にメタデータ アサーションとデータベースの制約に依存して、オブジェクトが適切に初期化されていることを確認し、コンストラクターの制約を無視して状態を保証するようです。
検討:
Class Employee {
private $id;
private $first;
private $last;
public function __construct($first, $last)
{ .... }
}
...
class DefaultController extends Controller
{
public function newAction(Request $request)
{
$employee = new Employee(); // Obviously not going to work, KABOOM!
$form = $this->createFormBuilder($employee)
->add('last', 'text')
->add('first', 'text')
->add('save', 'submit')
->getForm();
return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
'form' => $form->createView(),
));
}
}
これを行うためにコンストラクター引数を使用すべきではありませんか?
ありがとう
編集: 以下に回答