5.9-SERIES

Support for PHP 5.5.0 Beta 3

at 2013-04-11 in 5.9-SERIESPHP5 by friebe

Following up on our blog on PHP 5.5.0 support, we've successfully verified the XP Framework works with the most recent PHP 5.5 version, beta 3:

  $ unittest core/src/test/config/unittest/*ini
OK: 5820/6439 run (619 skipped), 5820 succeeded, 0 failed
Memory used: 60472.76 kB (72210.46 kB peak)
Time taken: 13.954 seconds



5.9.0, RC8

at 2013-04-06 in ReleasesAnnouncements5.9-SERIES by friebe

Since we released RC7 a week ago, we've continued to polish the 5.9.0-RELEASE:


You can grab a release and test-drive it using this:
  $ cd ~/xp
$ wget http://xp-framework.net/setup/5.9.0RC8 -O - | php -- -d ~/bin/
Prerequisites: PHP 5.3.0+ (most current version tested: 5.5.0beta2)

Enjoy:)



XP 5.9.0, release candidate

at 2013-03-29 in ReleasesAnnouncements5.9-SERIES by friebe

BoxThe first public release candidate for the upcoming XP 5.9.0, RC7, is now available. While there have been several pre-releases, this is the first one we officially announce here. This release shows the feature-complete 5.9.0 release, until the final release, we'll now only allow bugfixes.

With this RC we start the 5.9-SERIES, which we've been planning and developing on since November 2011. The 5.9-SERIES of the XP Framework are the first to require PHP 5.3.0, and start adapting its features, like namespaces and closures. We've also split the "contrib" modules and the XP Compiler from the framework in order to allow for separate release cycles.

What we didn't include in this series were modules, a feature we didn't feel we'd get stable enough up to the release date; although they're still on the agenda as prerequisite for modularizing the framework itself. We've also refrained from converting the entire code base to PHP namespaces in order to make the transition easier. And we didn't end up adding an IoC container because we didn't find a suitable implementation. The ChangeLog is impressive, nevertheless.

The first-installation is almost the same as before, only that we now provide a slightly shorter URL:

  $ cd ~/xp
$ wget http://xp-framework.net/setup/5.9.0RC7 -O - | php -- -d ~/bin/
Prerequisites: PHP 5.3.0+ (most current version tested: 5.5.0beta2)

Enjoy:)



PHP 5.5.0 support

at 2013-03-29 in PHP55.9-SERIES by friebe

When the PHP group announced the first publicly available PHP 5.5 alpha back in November 2012, we were excited to see almost all of our tests passing (well, that is, after removing finally():-)), and after adjusting for some changes in preg_replace and unpack,first announced PHP 5.5 support at the end of 2012. The rest of the alpha versions so far have worked out equally well.

PHP 5Fast forward to a week ago, when the PHP group released beta 1, we didn't expect much to change. The test suite was showing quite a bit of error noise, didn't complete but stopped halfway through and worst of all, was showing failed assertions in suspicious places. While the whole story is covered in this GitHub issue, the summary is our mechanism for producing unique IDs was not sufficient anymore. We did find a workaround with an almost negligible performance hit, though.

Yesterday, PHP 5.5.0 beta 2 was made available to the public, and the test suite looks good with both opcache enabled and disabled. Looking at the PHP 5.5 todos, and given no release candidates have been published, we could still be a while away from a PHP 5.5.0 release, though. On the other side, there don't appear to be any game-changers in the backlog, so we still feel confident in stating XP 5.9 will support PHP 5.5.0 and the entire range from PHP 5.3.0 towards that!

Happy easter!



New Timer::measure() method

at 2013-03-18 in Announcements5.9-SERIES by friebe

The util.profiling.Timer class has been extended with a new method measure() which works on callables. Here's an example on how the new method can be used with closures:

  $timer= Timer::measure(function() {
// This is where the stuff happens
});
$elapsed= $timer->elapsedTime();

For all the details, see pull request #244.



Heads up: Current "master" now requires PHP 5.3.0+

at 2013-02-06 in PHP5Announcements5.9-SERIES by friebe

PHP 5With the implementation of RFC #0265, the minimum PHP version required to run the XP Framework's current 5.9-SERIES is PHP 5.3.0. This gives us the following version ranges:

  • 5.8-SERIES: PHP 5.2.0 .. PHP 5.4.x
  • 5.9-SERIES: PHP 5.3.0 .. PHP 5.5.x

By bumping the minimum version to 5.3.0, we can start (and have done so) removing various workarounds in place in the XP Framework.



RFC #0265: Bump PHP requirement to PHP 5.3.0 minimum

at 2013-01-27 in 5.9-SERIESRFCs by friebe

Scope of Change
The minimum PHP requirement for the XP Framework master branch will be bumped from 5.2.10 (5.2.0 unofficially also worked!) to 5.3.0.

Rationale
This will enable us to work with namespaces, get_called_class(), static, and remove various PHP 5.2.x workarounds.

Read the full RFC here



RFC #0220: Modules - Classpath meta information & initializers

at 2013-01-11 in 5.9-SERIESRFCs by friebe

Scope of Change
Every class path element will be able to provide a way to provide meta information. When it does so, we will call this class path element a module. Modules are named, may have a version, are accessible by reflection, annotatable and may contain initializer blocks.

Rationale
Prerequisite for XP Framework Modularization.

Read the full RFC here



PHP 5.5 Support in XP 5.9

at 2012-12-31 in PHP55.9-SERIES by friebe

PHP 5With the second alpha released, and preliminary work already committed to the 5.8-SERIES, we now officially support PHP 5.5 in the XP 5.9 branch. Thankfully, Travis-CI is an early adopter, so we're able to test 5.5 there!

Please note: The 5.8-SERIES doesn't work - its finally() core functionality conflicts with the new finally implementation present in PHP 5.5. We've deprecated it in the forward compatibility release 5.8.9 (details) but won't remove it until 5.9.0.



PHP 5.5 Generators

at 2012-12-20 in PHP5Experiments5.9-SERIES by friebe

I started playing around with PHP's new generator functionality today now that 5.5.0 alpha2 has been released, trying to find out what they can be used for, and what real-life role they will play in a future XP Framework.

While they'll make some portions of code easier to write (and less code is always better!), they do come at the disadvantage that they're not 100% BC break free: As long as you iterate, you're fine, once you start using stuff as arrays, you're out of luck and will start seeing "Cannot use object of type Generator as array" fatals.

Where they'll come in handy is where we implement IteratorAggregate - its getIterator() implementation will become much easier; instead of having to construct an object with current, key, next, rewind and valid methods, we can simply yield the elements. One example is the util.collections.Vector class, which will be changed to contain just this:

  public function getIterator() {
foreach
($this->elements as $element) {
yield
$element;
}
}

Follow the code @ https://github.com/thekid/xp-experiments/tree/master/generators - note that this will require PHP 5.5.0+ (of course) and XP 5.9.0+ to run!



Subscribe

You can subscribe to the XP framework's news by using RSS syndication.


Categories

News
General
PHP5
Announcements
RFCs
Further reading
Examples
Editorial
EASC
Experiments
Unittests
Databases
5.8-SERIES
Unicode
Language
5.9-SERIES