Blog: Propel2 Is About To Be Released
One year and a half ago, Propel2 began. We decided to refactor the whole Propel code base in order to remove BC hacks, and introduce new features. We, the community and the Propel core developers, wrote a roadmap with all key points:
- Removing all
require()and adding namespaces, that means the directory structure will be modified to follow the PSR-0 specification;
- Adding an autoloader component, probably the Symfony2 ClassLoader Component. Note: Composer has been used;
- Fixing CS;
- Fixing naming;
- Removing Phing and related stuffs;
- Removing late-static-binding hacks;
- Adding a new component to handle the console logic: Symfony2 Console Component is suitable for that part (#100);
- Introducing a commons logic (useful for shared information between the Platform (buildtime) and Adapters (runtime));
- Refactoring Adapters to be more generic (Proxy connection or something else) (#33, #39, #47);
- Adding new named exceptions (#90);
- Adding a new (or real) logging part: probably Monolog (#101);
- Removing PEER classes (#359 and a lot of commits);
Base*classes to a better location, with a better name (
Base/Book.phpfor instance) (#175);
- Removing the old validation system, and use a behavior to integrate the Symfony2 Validator component (#96, #156, #227).
Then, we wrote more unit tests to make Propel more stable. We also adopted the Symfony2 Filesystem component, and contributed to the Symfony2 framework by creating this standalone component. Propel2 relies on five Symfony2 components: Yaml, Console, Finder, Validator, and Filesystem.
We also took care of all patches applied to Propel 1.6, and ported them to Propel2.
Last but not least, Propel2 is PSR-0, PSR-1, PSR-2, and PSR-3 compliant.
We still have a few things to ship before a first alpha release like a Transaction API, a new Pager, and some other things to clean up. This first release is scheduled for the 1st of June. Then, we will ship a beta version, probably in two months. Depending on users feedback, we will be able to release a first stable version in September.
I could not imagine how complicated it was to refactor such a project, we did a lot but we could be even better, especially now that we have a cleaner code base. I would like to apologize for the delay, it took more time than I thought. Rome wasn't built in a day, they said.
My final thoughts go out to all Propel contributors, you are really awesome, thank you!