Sebastian Bergmann »
26 June 2006 »
in Events, MySQL »
From
Monday to
Wednesday we at
eZ Systems AS had our internal developers conference in Skien, Norway.
Since I joined eZ systems only recently, this was the opportunity for me to get to know all employees that gathered from all over the world. Most of the Tuesday was reserved for a "Crew Day" with some "team-building" which took place in a forest nearby.
On
Thursday and
Friday the eZ publish conference 2006 took place.
During the conference I met with
Sébastien Hordeaux of
WaterProof SARL, the company behind such great products as
PHPEdit (PHP IDE) and
wIT (Issue Tracker built using the
eZ components). I had a great time discussing with Sébastien ideas to integrate PHPUnit with both PHPEdit and wIT. The architecture (and roadmap) he showed me looked very promising.
I also used the opportunity to "pick the brains" of Lenara Anafieva and Sergiy Alyeksyeyev, both from the
eZ systems Ukraine office, on the subject of
Selenium,
a test tool for web applications [...] that runs the tests directly in a browser, just as real users do. At eZ systems, it is
used to test the user interfaces of the
eZ publish Open Source Enterprise Content Management System. The three of us discussed how PHPUnit could be integrated with Selenium to get combined reports from both
Unit Tests and
Functional Tests.
Last, but not least,
Saturday and
Sunday belonged to the
PHP Vikinger, an unconference for
PHP.
It was great to finally meet
Stuart Herbert with whom I work on the PHP packages for
Gentoo Linux.
Defined tags for this entry:
ez systems
,
gentoo
,
lenara anafieva
,
mysql
,
phpedit
,
phpunit
,
sébastien hordeaux
,
selenium
,
sergiy alyeksyeyev
,
stuart herbert
,
unconference
,
wit
Sebastian Bergmann »
17 June 2006 »
in PHP »
Greg Beaver has
ported the
LEMON Parser Generator to
PHP.
This finally gives the PHP Community an
LALR(1) parser generator that takes a
context free grammar and converts it into a PHP subroutine that will parse a file using that grammar.
Greg's work brings one of my dreams closer to reality: a framework that reads PHP sourcecode into an
abstract syntax tree, allows transformations of that tree from within PHP code, and serializes the abstract syntax tree back to PHP sourcecode.
Update: Greg now
did the same for a
lexer generator (using a syntax similar to
re2c).
Sebastian Bergmann »
17 June 2006 »
in Presentations, Presentations »
I will present two talks at this year's
php|works conference that is held in Toronto, Canada, from September 12th to 15th, 2006.
The first talk will give an introduction to
Testing PHP Applications with PHPUnit. The second talk will present
The State of AOP in PHP and will introduce, after an overview of existing solutions, my own implementation of
Aspect-Oriented Programming for
PHP.
Sebastian Bergmann »
15 June 2006 »
in MySQL, PHP »
Garvin Hicking has released
Serendipity 1.0 today.
Congratulations to Garvin and his contributors! Thank you for the
best blogging software there is!
Sebastian Bergmann »
14 June 2006 »
in New Features »
When I
moved to Norway just over a month ago, the
Code Coverage Reporting of
PHPUnit 3 needed almost
six hours to run the test suite and generate a
Code Coverage report for the
eZ components.
Then
Derick Rethans committed a patch to
Xdebug that introduced "
a cache that prevents the code coverage functionality from running a ''which code is executable'' check on every function call, even if they were executed multiple times". This patch reduced the time spent on running the tests dramatically. It now took only
two hours to run the test suite and generate the report.
Over the past couple of days, Michael Lively Jr.,
Jan Kneschke, and myself used Xdebug's profiling functionality to locate "hot spots" in PHPUnit 3's report generator. After optimizing most of these hot spots (
I am not proud of all of these patches), the initial six hours have been reduced to
eight minutes.
Wow.
I am also working on a "logger" that writes all information that is gathered during the execution of a test suite to an
SQLite database. Think of this feature as the basis for a tool like
CruiseControl. A web application queries this database and would allow, among other things, the analysis of differences between test runs: Which commit (by which developer :-) made a test fail? Which commit incurred a performance penalty?
The possibilities are virtually endless ;-)