propelorm / Propel3

High performance data-mapper ORM with optional active-record traits for RAD and modern PHP 7.2+
MIT License
251 stars 35 forks source link

Is it still in development. #92

Open Vahanerevan opened 4 years ago

Vahanerevan commented 4 years ago

Hi , I am big fan of Propel and use it for many projects. Thank you guys it's just ideal for any project , flexible and ide friendly. I can see last commits 5 month ago and silence everywhere . I would like to ask if project still in development ?

rybakit commented 4 years ago

@Vahanerevan https://github.com/propelorm/Propel3/issues/86

guilhermeaiolfi commented 4 years ago

Is it alpha now? Beta? Dead? What to expect from it? Is there anyone using it?

cristianoc72 commented 4 years ago

I'm working on it but afaik I'm the only one, by now. The project is in development state: my next PR should fix all agnostic tests, which means that the project works on Sqlite, at least. After that,I'll work on mysql, postgres and so on. By now, it's not usable: I'm doing it php 7.4+ and I'm introducing Twig to increase maintainability and simplify code generation.

To be honest, I don't know how long it could take: I'm giving it all my free time, but it's not more than a couple of hours a day.

To easily show the progresses, I'll change the todo list into issues and milestones and I'll add some badges, to show which tests are green.

stevleibelt commented 4 years ago

@cristianoc72 thanks for your work man. but it's not more than a couple of hours a day - this is by far more than average, don't get lost!

e1himself commented 4 years ago

@cristianoc72

Wow! I'm surprised to see that there's still someone working on Propel 3. Props! :muscle:

So what's the plan with this project? You say that it's not usable. Are you working towards a specific milestone so then someone (you?) can start using it?

I'm asking because I'm slowly working on another fork (of Propel1): https://github.com/propeller-orm/propeller-orm

But my philosophy is different: instead of completely rewriting it, we're doing small incremental changes, making sure everything keeps working. That's because we use it on a real mature up-and-running application being in active development. Thus the strategy. The overall pace is slow, but the advantage is that it's actually improving a real working project from day 1 and does not take months/years to get to a usable state.

I wanted to suggest my help here, but I'm afraid that it's practically impossible for me to work on this, unless it's actually used in our application.

nymo commented 4 years ago

@e1himself would have been a better choice to migrate to propel 2 and contribute to it instead of working alone on such an old legacy code. The migration from 1 to 2 wasn't so hard.

cristianoc72 commented 4 years ago

@e1himself the current status is: I complete the refactor of Propel3 builder system, which now uses Twig as template engine. It allows to move some render logic into templates and increase the maintainability. By now, I'm becomeing crazy to adjust the test suite 😄 After that, I'll create a list of issues and a milestone (I'm slow as a snail but it's muuuch work).

The problem I encountered in refactor Propel is that it's based on large peaces of old code and all its parts are closely coupled each other, so it's quite difficult to refactor small pieces of code without crashing almost everything. This is the reason why @marcj started Propel 3, rewriting most parts from scratch.

I agree with @nymo : migrate and contribute to Propel2! Propel 1 has an almost totally unmaintainable architecture and this is the reason why we started Propel 2, some years ago. Migrating from 1.7 to 2 version is (I suppose) very easy:

  1. understand the Propel 2 configuration system and adjust the configuration.
  2. remove all your Peer classes and execute all your queries via Query classes (which are still present since Propel 1.5, if I remember correctly)
  3. leave the schema.xml as is except for the validation system, which has a new way http://propelorm.org/documentation/behaviors/validate.html . Imho you should remove the validation from the schema at all, because validating data isn't an orm business and you could perform it with an external library before you save the data.

Propel 2 is based on the same patterns as Propel 1 (active record) so there's no "logical" change of mind to do.

Propel 3 is a complete change because it implements the data mapper pattern (well, to be honest we could still use active record as a layer on data mapper) which brings Propel 3 closer to Doctrine then to Propel 2 (aaarrrghhh 😱 )

e1himself commented 4 years ago

would have been a better choice to migrate to propel 2 and contribute to it instead of working alone on such an old legacy code. The migration from 1 to 2 wasn't so hard.

@nymo Thanks! I will check the option to upgrade to Propel2.


@cristianoc72

Got it. Thanks!

A couple more questions:

DarkAxi0m commented 2 years ago

Though I would pipe up 2 years later, and ask how it's going?

cristianoc72 commented 2 years ago

I'm afraid the project is dead: I have no time at the moment and all other Propel contributors are on Propel2 (they're doing a terrific work).

stevleibelt commented 2 years ago

@cristianoc72 thanks for all your work and being so honest with us.

netbrothers-tr commented 1 year ago

Thank you @cristianoc72 for your work! 🥇

Since Propel2 is still active, would it be okay, to mention this in the README.md and/or in the project description? Currently it says "Version 3 of Propel ORM replaces Propel2, which is not maintained anymore." which apparently seems to be the other way around. 😉