Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What persistance systems do we have to support for first release? #1

Closed
tgalopin opened this issue Sep 22, 2015 · 7 comments
Closed

Comments

@tgalopin
Copy link
Contributor

Hello everyone,

One of the questions we have to ask ourselves is what persistance system do we have / want to support for first release?

I think Doctrine ORM and ODM are clearly needed. However, I don't know very well the popularity of the others.

FOSUserBundle supports Propel. Are there a lot of people using Propel?
Does anyone else use another persistance layer and would like a support for it in the library?

@dbu
Copy link

dbu commented Sep 23, 2015 via email

@tgalopin
Copy link
Contributor Author

I think I will start with Doctrine ORM yes. I will implement Mongo ODM later and we will see if other persistance systems could be interesting. Thanks @dbu !

@Miliooo
Copy link

Miliooo commented Sep 23, 2015

Keep in mind that one of the reasons FOSMessageBundle became stale in updates was that if you wanted to add a feature you had to add it for both drivers or it wouldn't get accepted... It's hard to keep those things in sync.

@ionafan2
Copy link
Contributor

If we talk about "for first release" then Abstract layer and one implementation like Doctrine ORM will be enough.

@stof
Copy link
Member

stof commented Sep 24, 2015

@tgalopin I'm dreaming of killing the propel 1 support in FOSUserBundle actually. The fact that it requires to extend the Propel base class means I have to duplicate everything for propel support.

Regarding the different Doctrine implementations, the great things is that many code can be shared (you need different implementations only for places where you perform complex queries). And they don't require special entity/document classes (the model class just has a dependency on doctrine/collections in case you have toMany relations). What would be needed here is to split the basic persistence responsibility from the complex querying responsibility. This way, the first part can be shared between all doctrine projects.

@tgalopin
Copy link
Contributor Author

@Miliooo That's a very good point. With this and @stof explainations, I think we will go only for Doctrine ORM and Mongo ODM.

@stof Thanks for your feedback. I already planned to make the library depend on doctrine/collections. Do you have ideas on how to split the persitance responsability and the querying? I created a Driver system in the test library (https://github.com/tgalopin/message), perhaps should it be more eveolved.

@tgalopin
Copy link
Contributor Author

I close this as we made our decision.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants