Touch wood, I'm on a roll ... key elements are working on PHP8.4

by Lester Caine
Sunday 04 of May, 2025
Posted to Lester's Rants

I was begining to get flustrated as when I changed things everything stopped working again, but over the last few days which have been broken up with things like a visit to the GWR Festival of Steam on Saturday and a Dolls house show in Churchdown on Sunday. Obviously getting my mind off the software side was the right thing to be doing and this morning I took stock of where I am and things are looking good. The bitweaver framework is fairly stable, and I now have a copy of phpgedview running as a custom package in the framework and displaying all the current family tree information. Still a few things to address, but as with the bitweaver code, the view from the internet should be clean. The report generator in phpgedview still needs a bit more work, but is running with the latest tcpdf and seems to be handling the XML side correctly even if some reports are still coming up blank. Just a matter of sorting the list generation which gets me around to the database side of things!

I need to port the phpgedview tables over to the main bitweaver site which is something I've often done in the past, but none of the old tools work today, so I took a spin around ibWebAdmin and after a few hours work it's clean and running alongside bitweaver. The initial problem was that it is written to run with the generic firebird/interbase driver rather than the PDO one and while I had a PHP7.3/7.4 setup with that driver running, I was struggling with getting it to run on PHP8.4. Back in April I had been playing with Firebird PHP Test Script ibtest while trying to sort the problem, not helped by the php-firebird / firebird-php confusion. While the mlazdans OO version of the driver has it's attractions, it does not provide the legacy functions, so I did a clean pull of the php-firebird and built it from scratch, which seems to have solved the problem. Irritatingly it is missing the fbird_ variations of the functions which my old copy of ibWebAdmin was using but after a little persuasion it is now running and providing most of the stuff I expect to see. This is perhaps a little surprising when one considers it was first produced for Firebird1 and only had version 1.5 additions, but it's talking happily to my Firebird5 server and showing all the structure of the PGV5 database.

Bugger save screwed up again! Really must work on why that is ...

So what did I loose? The general drift was that I am taking the easy option for the time being and only worrying about PHP8.4, although I did fire up 7.3 to check out the initial problems with ibWebAdmin. In addition, I will only test against Firebird 5 and not worry about just what new features came in where. The handling of Timezones in FB4 is just wrong in my book and so I will continue to use the genealogically correct processing of things like daylight saving and KNOWING when a set of rules changes affecting that data. The subject of a different rant. So we can concentrate on the extra data types and extend ibtest.php to handle them (Firebird PHP Test Script ibtest). It will be interesting to see if PHP can actually handle the 128 bit data types anyway, let alone if they can get through the database client interface. These SHOULD be using text based transfers so it should not be a problem, but PHP's moves away from strings as numbers does just seems wrong some of the time. Yes sending binary data may be quicker, and 'more reliable', but nine times out of ten you want to see the decimal number rather than a bunch of one's and naught's ...

I think I am almost at the point where I need to set up a mirror of the PHP8.4 setup on the main servers, perhaps using the .co.uk domains while testing things. Then I can start to pick up the remaining niggles.