2017-07-13 5 views
0

はので、新しいAnnotationBuilderオブジェクトをインスタンス化する光であり、AnnotationBuilderクラスが関連付けられ__constructを持っているように見えていないフォームを作成すると、サブフォームを作成するために、ZendのフォームAPIを使用していくつかのコード(別名フィールドセット)余分なクラスのインスタンス化を避ける利点はありますか?以下

です重量の操作。言っ

、私はそれがあるとして、以下のコードを残しても大丈夫と信じて:

$form = (new AnnotationBuilder())->createForm(CustomForm::class); 
$form->add((new AnnotationBuilder())->createForm(CustomFieldset1::class)); 
$form->add((new AnnotationBuilder())->createForm(CustomFieldset2::class)); 

上記のコードをリファクタリングする必要があるか、それがあるとして、それを残しても安全ですか?パフォーマンス上の問題私は、余分なオブジェクトインスタンスのカップルを除いて、重大なペナルティはないと信じています。

たとえば、new AnnotationBuilder()をローカルまたはクラススコープとして保持し、必要に応じてその変数を再利用する変数を作成することを検討していました。しかし、私は必ずしもここでそれを行う利点を見ていません。

+0

'new AnnotationBuilder()' _constructs_新しいオブジェクトです。それはメモリを使用しています - それはあまり意味がありません。あなたが(マイクロ)最適化を熱望しているなら、それを避けたいです。 _itが新しいオブジェクトを構築するのに必要でない限り。 –

答えて

0

私は理由を参照してください。NOT$builder = new AnnotationBuilder();を使用してください。

ビルダーをインスタンス化することによって、マイクロ秒を無駄にするだけです。おそらくAnnotationBuilderには内部ロジックがあり、フォーム内の一部の要素(例:何らかの種類のプロパティキャッシュを使用することによって、

本当に新しいものを手に入れたいと思うまでは、何度も繰り返し作成することはお勧めしません。

関連する問題