Propel Roadmaps

At this point, this is designed to be an interactive document to capture some of the things that users and developers want to see in upcoming versions of Propel. Bear in mind that the Propel development team is fairly resource (time, personel, etc.) constrained, so suggestions that include a willingness to contribute to making them possible are far more likely to actually make it into the codebase.

Please feel free to add to this page -- either through the comments system or by editing the page. This is an open discussion, so please be respectful of others opinions & do not delete pertinent points, etc.


Propel 1.3

Performance & Conformance

  1. PHP 5.2+ requirement
  2. Change to using  PDO in place of Creole (#267)
  3. Optimized on-demand MapBuilder initialization. (#268)
  4. Database profiling layer, perhaps via  http://www.sebastian-bergmann.de/blog/archives/589-AspectPHP.html ?

Fundamental API Changes

  1. Implement Unique Object Instances so that there is only one object per row in the database. (#280)

Enterprise Features

  1. Replication Support (#554) See also original replication support discussion and replication documentation.

Modeling Improvements

  1. Support for table prefixes
  2. Support for schemas. (see #394) for mssql & postgres

Other Features

  1. make copy() method more flexible (#225)

Propel 2.0

Performance Features

  1. Data cache layer via PropelCacheAdapter? (see #68)
  2. "light-weight" objects

Fundamental API Changes

  1. Completely redesigned Criteria, now more consistent, more user-friendly, more powerful, etc. (#275)
  2. Ability to generalize the doSelectJoin*() methods so that BasePeer classes for heavily-related tables don't need to be so large (#288)
  3. Add new inheritance models (?)

Modeling Improvements

  1. Implement run-time IdentifierQuoting system (#3).
  2. Componentized schemas where schema.xml files could be inter-dependent. This implies that we also implement...
  3. A method to auto-update the database when the schema is changed, which means we need...
  4. Schema deltas, so database updates can be done across multiple schema revisions. Dominik and David will work on this one and the two points above.
  5. Full support for self-referencing foreign keys (the lack of table aliasing in Propel 1.2 made this impossible).
  6. Many-to-many convenience methods

Builder Improvements

  1. Plugin-based builder system so that multiple build feature plugins can be registered.

Process Improvements

These relate more to the development process itself than the actual product of it, but are still highly relevant:

  1. New, fresh looking site, with a clear distinction of content for development with vs. of Propel.
  2. Test suite setup that allows for doing a separate build per each test case if need be (so that issues like this can also be tested for).
  3. Clearly stating which versions of PHP are supported, and running the test suite on all supported versions before a release (should be easy as Propel 2.0 will probably start at PHP 5.3.0).