XP Framework Roadmap



Current: 5.8-Series

The following items change the XP Framework's core functionality and will thus be kept for the next series. This series will require at least PHP 5.2.10. It will not require any PHP 5.3-only features but will no longer be compatible with older (and buggy) PHP 5.2 versions.

5.7-Series

With the 5.7.11-release, feature development in the 5.7-Series had ended; while there might or might not bemore releases, the main focus is now on 5.8-SERIES.

5.9-Series

The following items need an even longer release cycle and forward compatibility changes ahead and will thus have to wait for the over- next series. This series will require at least PHP 5.3 and will make use of its features.

PHP 5.3 adapation / XP 6

PHP 5.3 - still in the release phase at the moment of writing this paragraph, is one of the most stable releases so far: The XP Framework's core unittests all pass unmodified. One of its most-requested parts are namespaces. Others are closure support, late static binding and __callStatic. An overview of what could be done can be found in the 5.3 experiments directory.

At the moment, the XP Framework requires PHP 5.2.0+, which is still the default in many Un*x distributions. Once we start incorporating 5.3 only features, we would rely on a PHP distribution not widely available and thus create an adapation problem. The idea currently is the following:

Wait for PHP 5.3.0

Without the final PHP version released, we will not start any efforts.

Create an xp6 branch

Copy the contents of trunk to branches/xp6. Continue active development in the current branch, though, merging changes to the branch.

Start adapting features

For the start, add features that don't have BC issues:

  • Change lang.Enum to use late static binding
  • Change the with statement to use closures

Release 6.0.0RC1

With these features in, create the first XP 6 release.

Namespaces

Embrace namespaces (RFC #0136) and release 6.0.0RC2. This is the BC break - all non-namespaced classes become useless and must be migrated.

Final

Once a migration script exists and is well tested, release 6.0.0.

Switch branch and trunk

Continue active development in xp6, moving trunk to branches/xp5 and branches/xp6 to trunk. This allows us to still perform bugfixes and provide features for the old version, but development should focus on the 6.0-series.

See also RFC #0172 - XP 6.

Unicode

Drafted inside RFC #0146, the goal is to fully support unicode. This will require lots of testing and will patch quite a bit of the XP Framework's functionality.

Unicode support will be implemented in both 5.X-series and 6.X-series.

EASC 2.0

The Enterprise Application Server Connectivity (short: EASC) protocol's first version has a couple of drawbacks:

  • No hand-shake: This creates a problem for protocol versioning (see RFC #0068) but also to be able to detect whether the server is actually responding to requests.
  • No defined type set.
  • No support for generics.
At the same time, while we're redesigning it, a technical whitepaper should be created definining this protocol. This would make it easier for third-party members to provide implementations of their own.

Web framework rewrite

The XP Framework's scriptlet API is already the second version, but it also has a number of drawbacks:

  • It's not easily testable
  • Its conventions create problems when trying to
  • Quite a bit of boilerplate necessary for standard CRUD frontends
  • It's not integrated with the runner infrastructure.
See also the Über-RFC #0177, which groups several other related RFCs.

Table of contents