5.9-SERIESSupport for PHP 5.5.0 Beta 3at 2013-04-11 in 5.9-SERIES, PHP5 by friebeFollowing 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 5.9.0, RC8at 2013-04-06 in Releases, Announcements, 5.9-SERIES by friebeSince 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 ~/xpPrerequisites: PHP 5.3.0+ (most current version tested: 5.5.0beta2) Enjoy XP 5.9.0, release candidateat 2013-03-29 in Releases, Announcements, 5.9-SERIES by friebe The 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 ~/xpPrerequisites: PHP 5.3.0+ (most current version tested: 5.5.0beta2) Enjoy PHP 5.5.0 supportat 2013-03-29 in PHP5, 5.9-SERIES by friebeWhen 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() Fast 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() methodat 2013-03-18 in Announcements, 5.9-SERIES by friebeThe 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() { For all the details, see pull request #244. Heads up: Current "master" now requires PHP 5.3.0+at 2013-02-06 in PHP5, Announcements, 5.9-SERIES by friebe With 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:
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 minimumat 2013-01-27 in 5.9-SERIES, RFCs by friebeScope 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 & initializersat 2013-01-11 in 5.9-SERIES, RFCs by friebeScope 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.9at 2012-12-31 in PHP5, 5.9-SERIES by friebe With 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 Generatorsat 2012-12-20 in PHP5, Experiments, 5.9-SERIES by friebeI 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() { 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! |
|