Doctrine2.3がすごくよくなってる
Symfony2.1を使っていて感動した!
Symfony2.0系ではformでEntityを利用した場合、同じform内に同一のEntityがあった場合でもデータは別途取得される仕様だった。
<?php $builder ->add('product1', 'entity', [ 'class' => 'Acme\\DemoBundle\\Entity\\Product', ]) ->add('product2', 'entity', [ 'class' => 'Acme\\DemoBundle\\Entity\\Product', ]) ->add('product3', 'entity', [ 'class' => 'Acme\\DemoBundle\\Entity\\Product', ]);
こんな感じでformを生成するとdoctrine2.1系では3つの同一のDQLを発行し、formにバインドする。
Symfony2.1(Doctrine2.3)系ではこれが1つのDQLのみ発行し、使いまわされるように効率化されている。
同じform内で同一のEntityを利用することはそんなにあるわけではないが、Doctrine2.1系のこういう部分を見るとほんといらっときていたので、個人的にはこれはかなり嬉しい変更点だった。