Well, after spending absolutely aaaages trying to make PEAR work and
failing, I finally bit the bullet and rewrote LibStats to use PDO
instead. It took 15 solid hours last Saturday, but it's been working
smoothly all week.
Hopefully that will prevent a recurrence of similar problems for some
time. Since PDO is a native PHP interface, I suspect it's here for the
long haul.
I'd be happy to contribute this back to the community, but I don't know
where to send it. The original code repository on code.google.com
resembles a ghost town, complete with tumbleweeds, creaky half-hung
doors, and a mournful wind whistling through the desolate ruins of a
once vibrant project.
I did find a fork on GitHub, but it too hasn't been updated in 4 years.
I could just publish my own fork on github, but I worry that it would
soon join the other abandoned versions littering the digital landscape,
because I honestly don't have a whole lot of time to devote to
maintaining it.
Not that it needs much maintenance. It does what it does pretty well.
It's got a few warts, notably the completely unhelpful white screen of
death if you misspell your password. But aside from the PEAR issue,
there's nothing I can see that's so critical that it really needs
addressing.
Will Martin
On 2016-08-25 14:34, Demian Katz wrote:
> It's possible that the problem is that updating PHP also updated
> PEAR::DB, and it bumped up to a version that doesn't get along with
> LibStats. Do you happen to have any record of the PEAR versions that
> were running on your server before the upgrade so that you can compare
> them against current versions? It might be possible to simply
> downgrade the dependency to restore previous functionality (though of
> course you then run the risk of running into some other
> incompatibility between an old version of the library and PHP 7...
> it's never easy!).
>
> For what it's worth, users running very old versions of VuFind (from
> before it switched from PEAR::DB_DataObject to Zend\Db as its
> abstraction layer) occasionally complain about breaks after upgrading
> PHP, and the solution usually turns out to be "downgrade to a specific
> old version of PEAR::DB_DataObject." I'm not sure if this also applies
> to plain old PEAR::DB, but it's worth investigating if you have the
> option.
>
> Good luck!
>
> - Demian
>
> -----Original Message-----
> From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
> Will Martin
> Sent: Thursday, August 25, 2016 12:52 PM
> To: [log in to unmask]
> Subject: [CODE4LIB] LibStats, PEAR, PHP 7
>
> All,
>
> A recent server upgrade seems to have broken our installation of
> LibStats. It appears that the database abstraction layer it uses,
> PEAR::DB, is not working correctly. Once instantiated, it's supposed
> to have methods like getOne() and getAll() that execute a SQL query
> and retrieve the results; but keeps complaining that these are
> undefined.
>
> I'm pretty sure this has something to do with the fact that the upgrade
> -- to Ubuntu 16.04.1 LTS -- installed PHP 7, up from 5.6. According
> to the PEAR web site, PEAR::DB is supposed to be compatible with PHP 7
> despite being ancient and crufty, but it's not working.
>
> Anyone have any insight on how to get PEAR::DB to play nice in its new
> environment? Because the other option would be going in and rewriting
> all the database queries to use a more modern database abstraction
> layer. Probably PDO. That's certainly doable, but it'd be quite a
> pretty fair chunk of work, and in the meantime our reference and
> access services staff can't log their stats normally.
>
> Will Martin
|