Skip to content

Loading…

DDC-36: EntityManager#persist should accept more objects to easily persist multiple objects. #4422

Closed
doctrinebot opened this Issue · 3 comments

1 participant

@doctrinebot

Jira issue originally created by user marijn:

I think it would be nice if the persist function would accept more objects as an arguments by using func-get-arg see the simple example below:
\
\


<?php

  $user   = new \Entities\User();
  $person = new \Entities\Person();

  $person->setName('Wage');
  $person->setFirstNames('Jonathan');
  $person->setTitle('mr');

  $user->setPerson($person);
  $user->setPassword('D0ctr1ne');

  $em->persist($person, $user);
  $em->flush();

@doctrinebot

Comment created by romanb:

I really dislike funcget_args in general because it makes parameters invisible on the public API without explicit correcting documentation (and grabbing parameters out of thin air, which is what func_getargs() does, doesnt look very appealing in the code, too).

Combined with the fact that this would really be only a very small convenience, I have to say no on this one. Sorry, but thanks for the suggestion.

What would probably be acceptable is: EntityManager#persistAll(array $entities) but then we would need such a method for remove/merge/detach as well. Sounds like too many new methods for me that will be rather rarely used and we dont want to bloat the public API like that. And it really is a one-liner in userland code: foreach ($entities as $entity) $em->persist($entity);

@doctrinebot

Issue was closed with resolution "Won't Fix"

@doctrinebot

Comment created by marijn:

Hi Roman,

I agree with you in keeping the API as clean as possible, its one of the most important features is you ask me from doctrine 2, that's why I'll have to agree with you.

Thanks for concidering.

@doctrinebot doctrinebot added this to the 2.0-ALPHA3 milestone
@doctrinebot doctrinebot closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.