Skip to content

Loading…

DDC-391: Allow to specifiy custom Entity and Collection Persister classes #4767

Open
doctrinebot opened this Issue · 16 comments

2 participants

@doctrinebot

Jira issue originally created by user @beberlei:

It should be allowed to overwrite the default persisters for collections and entities. This should go along the lines of Hibernate which allows to set the custom implementations like:

XML:

<entity persister="persisterClass" />
<OneToMany persister="persisterClass" />

Annotation

/****
 * @Entity(persister="persisterClass")
 * @OneToMany(persister="persisterClass")
 */
@doctrinebot

Comment created by romanb:

Rescheduling for beta3.

@doctrinebot

Comment created by romanb:

Pushing back to beta4.

@doctrinebot

Comment created by romanb:

Moved to 2.1 due to lack of time for any larger new features for 2.0.

@doctrinebot

Comment created by @beberlei:

implemented this in a feature branch for now, it really doesnt touch any other runtime code so maybe we can still merge this before RC1

http://github.com/doctrine/doctrine2/tree/OverridePersisters

@doctrinebot

Comment created by gediminasm:

Is this forgotten? you should merge it since it does not affect any other parts of ORM, this is a great feature

@doctrinebot

Comment created by @beberlei:

This has not been forgotten, but the Persister is due for a heavy refactoring for 2.2 probably, when we will make it use the SQL Query object that we are working on.

So I cannot merge this, because the API will probably break big time.

@doctrinebot

Comment created by jonaswouters:

Does that mean we will not see this feature before 2.2?

@doctrinebot

Comment created by @beberlei:

Yes, that is correct. I dont want to add it as experimental/undocumented feature because people will take it for granted and make us responsible for possible bc breaks.

I will update the target version accordingly.

Sorry for disappointing you, but this feature is fundamentally important at the core of the library. That means we have to get it right and not rush into it.

@doctrinebot

Comment created by gediminasm:

Just as I thought that first you will want to make a query builder object for all persisters. since now they use plain sql. Thanks for all your work on this

@doctrinebot

Comment created by adambro:

I might be mistaken, but AFAICS mentioned Persister heavy refactoring did not made through to 2.2 version. Is there any plan to have it in 2.3 or at any later stage?

@doctrinebot

Comment created by @guilhermeblanco:

@Adam I refactored all Persisters optimizing their code, but I could not complete the move from SQL string generation to Doctrine\DBAL\Query.
We missed it, yes. I may reschedule for 2.3

@doctrinebot

Comment created by burnred:

Why is it still missing in 2.3? I would require this for an extension that uses its own overridden entity persister and using a custom persister is the solution that you guys recomend for not overriding the entity manager.

@doctrinebot

Comment created by sstok:

Any change seeing this soon? I really need this for a security feature.

What is making this so hard? just adding an setEntityPersister($entityName, $object) should do the trick.
I don't need any fancy stuff, just a way to limit the fields in the SELECT list.

Edit: OK, I'm shot I CAN NOT overwrite the entity manager as the UnitOfWork is private!
Got any other idea?

@doctrinebot

Comment created by st_koegel:

Any chance you could add this quickly? I need this feature urgently to complete an extension using a custom persister. Thanks in advance.

@doctrinebot

Comment created by lfweijl:

What's the status on this issue?

@beberlei beberlei was assigned by doctrinebot
@doctrinebot doctrinebot added this to the 2.x milestone
@mihai-stancu mihai-stancu referenced this issue
Open

Custom persister support #5586

2 of 3 tasks complete
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.