- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1
Description
Scope of Change
The next major XP framework release will bring a magnitude of new features.
Rationale
This RFC gives a strategic outlook to the further development.
Functionality
The XP 6 series are not backwards compatible - code written in XP 5 will not work and will need to be converted. The XP 5 series will be continued for a while before being phased out.
Core only.
See the separate RFCs #262, #278 and #287
PHP 5.4+
This XP Framework version requires a PHP version greater than or equal to 5.4.0. See RFC #281.
Namespaces
All XP classes will be inside namespaces. This supersedes the functionality implemented in #37 and makes all classnames always fully qualified (but allows for short notation by using "use"). See #136, step 2: For classes imported by uses(), short aliases will be created. Other classes only exist via there fully qualified name.
Unicode
Unicode (see #146) support will be added. All strings are to be considered being utf-8. The HTTP, command line, rdbms, LDAP, FTP, web services, files and other APIs will be changed to handle Unicode. The user should not need to encode or decode manually.
Using
The with() "statement" will be extended to support the lang.Closeable interface. It closes all parameters after running the block - even when that yields an exception.
with (new FileReader(__FILE__), new FileWriter('php://stdout'), function($in, $out) {
  $out->write($in->read());
});Security considerations
n/a
Speed impact
n/a
Dependencies
There are now new dependencies, PHP 5.3 is kept as minimum version.
Deprecations
The following are no longer needed or required:
- The uses() statement (replaced by "use" and __autoload)
- Ability to fully qualify class names #37 (superseded by namespaces)
- Enum::values() in declaration (made unnecessary by late static binding)
- SAPI feature removal: See Drop SAPI feature alltogether #186
- The ref() and deref() functions
- The $__generic-style generics (BC with < 5.8)
BC problems
These issues are to be considered problematic:
- Serialization format has changed in PHP 5.3
- All classes are now namespaced, cases where the unqualified class names are used need to be changed
Related documents
- Namespaces: See PHP namespaces adoption #136
- PHP 5.3 experiments: http://experiments.xp-forge.net/xml/browse?arena,five3
- Namespaces - For Step 2 (XP 6.0.0)