[horde] Turba question + notes for everyone on updagrading to 5.3
nybbles2byte at gmail.com
Sat Mar 20 07:27:03 UTC 2010
I recently upgraded to php 5.3.
As expected I got a ton of deprecated warnings but that's fine since I am a programmer. For anyone who wants to do the same you will get rid of 95% or more of the errors with the following 3 steps:
at the top of index.php and login.php -- not ideal but will do for the short term. This will knock out all the time function warnings.
Do a search and replace changing:
'= &new ' to '= new '
'=& new ' to '= new '
These two will knock out all the 'new by reference' warnings.
And what's left is a small enough quantity of errors to do on case by case basis reasonably quickly which means using the '@' symbol to suppress the warnings.
However once that was all done I had one warning left I suspect it is a turba coding error but I want to ask "those in the know" since I am anything but an expert on horde. So, here it goes...
horde/turba/lib/Driver/favourites.php -> function _getAddressBook() on line 123 there is this line:
$addresses = $registry->call('contacts/favouriteRecipients', $this->_params['limit']);
where $this->_params['limit'] is the integer 10 which seems to be picked up from sources.php
That is from here:
cfgSources['favourites'] = array(
'title' => _("Favourite Recipients"),
'type' => 'favourites',
'params' => array(
'limit' => 10
it calls: horde/lib/Horde/Registry.php -> function call($method, $args = array())
which as you can see is expecting at array of $args but args as we know is the integer 10.
it has this call:
return $this->callByPackage($app, $call, $args);
which as you can see calls:
horde/lib/Horde/Registry.php -> function callByPackage($app, $call, $args = array())
In this function on line 630 is this line of code:
$res = call_user_func_array($function, $args);
which is expecting $args to be an array and gives the warning "expecting array as the 2nd parameter".
This I think is a bug that for some reason wasn't giving an error in previous versions of php which might be to do with error_reporting(0) being all throughout horde. I say this because for some reason error_reporting(0) won't necessarily stop warnings in php 5.3 which I believe has been reported as a bug to the php team -- there might be some irony in there somewhere.
My questions are three-fold, does any with some knowledge of horde/turba know if this looks like a bug to them? And, whether a bug or not, for the short term I need to get rid of it so do you know which would be better, this:
$addresses = $registry->call('contacts/favouriteRecipients', array($this->_params['limit']));
$addresses = $registry->call('contacts/favouriteRecipients', $this->_params);
(personally I think this one is more likely correct)
or something else as an immediate fix while waiting for the turba guys to resolve it?
And last, if you agree it's a bug do you know where to report it? as I am guessing the forums aren't the place.
Nybbles2Byte mailto:nybbles2byte at gmail.com
More information about the horde