A last day of a month - time to release a new Stubbles version. The release does not feature that much new features, we focused mainly on infrastructure and code quality improvements. The most important change of course is the change of the package separator. Instead of dots we now use Paamayim Nekudotayim, the double colon, which will be the package separator in PHP5.3 with namespaces. The change will ease our transformation towards namespaces. The dot is still supported, but this support will be removed in 0.6.0.
Code quality improvements come from using CodeSniffer for checking adherence to our coding guidelines which allowed us to reduce violences to zero in the main code. The unit tests are currently not checked, but we will take care of this in the future.
Another improvement is the switch from SimpleTest to PHPUnit as underlying unit test framework for our unit and integration tests. This allows us to get a code coverage for our tests (which is btw. more than 75%) as well as to calculate some metrics about code quality. It should be clearly stated that SimpleTest is neither a bad unit test framework nor that it would not be suited for a project like this. It has its advantages, but due to various reasons we need the figures about the code and it is currently not foreseeable when something like this will be available in SimpleTest.
At least if it comes to internal classes. If you try to get informations about parameters from methods of internal classes - forget that. Examining several internal classes my key findings are: either there is no information about parameters available and the reflection API says the method does not have any parameters, or the information about the parameter is wrong. Some examples I retrieved with the following script: Continue reading "Do not trust the reflection API"
Against my intent of starting to work on file modes for 0.3.0 I decided that it is time to get an own repository for vfsStream in order to maintain it independently from Stubbles, which was the perfect reason to open a new project on Google Code. I will see if this proves to be a good solution for day to day development.
The movement also marked the reason to try PHPUnit because I wanted to make use of its code coverage and its software metrics features. Especially the last one showed me a bunch of points that required refactoring before starting something big like supporting file modes. During refactoring some improvements made it into the code which justified a new release: vfsStream now supports rmdir(), and I made some API changes. I dropped vfsStreamDirectory::ceate() in favor of vfsStream::newDirectory() to be equivalent to vfsStream::newFile(). Additionally there is a new vfsStreamContent::at() method now, which allows to write code like this:
$parentDir = vfsStream::newDirectory('newdir')->at(vfsStreamWrapper::getRoot());
$file = vfsStream::newFile('file.txt')->withContent('foo')
->lastModified(time() - 86400)
So far I'm very satisfied with the software analysis features of PHPUnit that I'm thinking very hard about saying good bye to SimpleTest in my other projects. Given the current state of SimpleTest's development I do not expect to get similar features in SimpleTest any time soon, and unfortunately I do not have the time to contribute to SimpleTest even if it would be a lot of fun I guess.
Some minutes ago I released version 0.4.0 of Stubbles, still being an alpha version. The changelog lists more than half a dozen bc-breaks, where some of them where necessary to fix bugs, some to have better code and others to improve how the code should be used. While there have been only some small feature additions like the net::stubbles::php::string string en-/decoder classes and a SOAP API the main focus of the release was on stability, performance of the Memphis view engine and small feature improvements to ease the use. For a complete list of changes see the changelog and the list of closed tickets for this milestone.
As a side note, I think we have put way too much stuff into this release. We should have done more smaller releases instead. We will try to improve this in the next release cycle.
« previous page
(Page 1 of 1, totaling 4 entries)
next page » Frontpage