Skip to content
Denis Turkov edited this page Jun 18, 2020 · 27 revisions

Welcome to the Propel2 wiki!

The Propel2 Roadmap

We are preparing Propel2 for a stable release (https://github.com/propelorm/Propel2/milestone/5). Our goal is to reduce BC-breaking impact, but also push architectural cleanup initiatives started many years ago.

Items under consideration for the Stable release:

  • [data-mapper] Refactoring builders by splitting all builders up in little component, using a oop php class generator, and using a template engine instead of plain old PHP to generate PHP.

  • [data-mapper] Implementing UnitOfWork and Data-Mapper, by extracting database persisting&fetching from the object model into new classes. Remove tightly coupling of SQL and Propel by moving some code generation to platform classes.

  • [ISSUE 608] Allow PHP in Migrations

The problem is that last a few years Propel2 didn't get any updates or governance. That created quite a tech dept on outdated dependencies. So before the Stable release, there will be a few Alpha releases (and finishing with Beta) during the stabilization phase (update dependencies, recover CI, merge bugfixes and quick wins). Following Alpha releases are expected to be BC. The scope of these changes you can find under Beta milestone https://github.com/propelorm/Propel2/milestone/4.


Already finished:

  • [OK] Removing all require() and adding namespaces, that means the directory structure will be modified to follow the PSR-0 specification.

  • [OK] Adding an autoloader component, probably the Symfony2 ClassLoader Component. Note: Composer has been used.

  • [OK] Fixing CS.

  • [OK] Fixing naming.

  • [OK] Removing Phing and related stuffs.

  • [OK] Removing late-static-binding hacks.

  • [OK] Adding a new component to handle the "console logic" : Symfony2 Console Component is suitable for that part.

  • Introducing a "commons" logic (useful for shared information between the Platform (buildtime) and Adapters (runtime)).

  • [OK] Refactoring Adapters to be more generic (Proxy connection or something else).

  • [OK] Adding new named exceptions.

  • [OK] Adding a new (or real) logging part: probably Monolog.

  • [OK] Removing PEER classes.

  • [OK] Moved Base* classes to a better location, with a better name (Om/BaseBook.php => Base/BaseBook.php for instance).

  • [OK] Removing the old validation system, and use a behavior to integrate the Symfony2 Validator component.

Contribute

Coding Standards