[dev] [commits] Horde branch master updated. 0badb203589d36e1c158d97e03748b2faa834e0b

Jan Schneider jan at horde.org
Thu Jan 29 10:28:20 UTC 2015


Zitat von Michael M Slusarz <slusarz at horde.org>:

> Quoting Jan Schneider <jan at horde.org>:
>
>> commit c1e2d8dd37c6c44be05e2636a6fe67520ca63d99
>> Author: Jan Schneider <jan at horde.org>
>> Date:   Wed Jan 28 15:37:31 2015 +0100
>>
>>    Could as well implement those methods directly in Socket\Client.
>>
>> framework/ManageSieve/lib/Horde/ManageSieve.php            |    7 +-
>> framework/ManageSieve/lib/Horde/ManageSieve/Connection.php |  112 ---------
>> framework/ManageSieve/package.xml                          |    6 +-
>> framework/Socket_Client/doc/Horde/Socket/Client/UPGRADING  |   12 +
>> framework/Socket_Client/lib/Horde/Socket/Client.php        |  150  
>> +++++++++--
>> framework/Socket_Client/package.xml                        |   18 +-
>> 6 files changed, 150 insertions(+), 155 deletions(-)
>> delete mode 100644  
>> framework/ManageSieve/lib/Horde/ManageSieve/Connection.php
>>
>> http://github.com/horde/horde/commit/c1e2d8dd37c6c44be05e2636a6fe67520ca63d99
>
> Unfortunately, this breaks Horde_Imap_Client.  It has declared a  
> read() method, without an argument, since Socket_Client version  
> 1.0.0.  The base Socket_Client class now declares read() with a  
> single $size argument.  Declarations don't match and PHP complains  
> (see the Horde_Mail_Autoconfig unit tests).
>
> Not really sure how to fix this.  It can be argued that this should  
> be fixed in Horde_Imap_Client to no longer declare a read() method,  
> but that would then mean that EVERY version of Horde_Imap_Client  
> before the to-be-released version in the future is irrevocably  
> broken if using PEAR to install, since it will install using the  
> latest version of Socket_Client.
>
> Another solution would be to use func_get_args() in the base call to  
> parse $size.  Although this isn't preferable because 1)  
> func_get_args() is ugly and 2) this is hacky in that the producer is  
> required to change based on the use-case of a consumer.

We could make this Horde_Socket_Client 2.0.0. Horde_ManageSieve could  
require this version, as well as the fixed Horde_Imap_Client and  
Horde_Smtp. The unfixed versions exclude 2.0.0, so there cannot be  
accidental upgrades.

> We can always establish some sort of naming convention going forward  
> to eliminate this kind of conflict in extended classes, but that is  
> just adding unneeded coding standards complexity for a use case that  
> rarely if ever happens.

Agreed, this is indeed too rare to worry about.

-- 
Jan Schneider
The Horde Project
http://www.horde.org/
https://www.facebook.com/hordeproject



More information about the dev mailing list