Print

Print


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