読者です 読者をやめる 読者になる 読者になる

Doctrine2.3がすごくよくなってる

Symfony2 Doctrine2 PHP

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系のこういう部分を見るとほんといらっときていたので、個人的にはこれはかなり嬉しい変更点だった。