Re: [commits] Horde branch master updated. 88679069d1c1d9759b468e93356514aa86488796

Jan Schneider <[email protected]> Fri, 03 Feb 2017 18:56:29 +0000
Newsgroups gmane.comp.horde.devel
Message-ID <[email protected]>
Zitat von Michael J Rubinsky <[email protected]>:

> Quoting Jan Schneider <[email protected]>:
>
>> commit ea32d50494dcadacd5173f8059f6f49f8b3dfbf1
>> Author: Jan Schneider <[email protected]>
>> Date:   Fri Feb 3 17:36:53 2017 +0100
>>
>>    Make the $value a string-only property again.
>>
>>    It's a BC break that this might sometimes be a stream now.  
>> Instead make $value a setter/getter and add $stream property too.  
>> Convert between these two on the fly.
>>    Also make Horde_Db_Value_Text extend Horde_Db_Value_Binary  
>> because they share most of the code. This requires to change some  
>> class tests though, because "instanceof Horde_Db_Value_Binary" is  
>> true now for Value_Text objects too.
>
>
> Wouldn't changing the class inheritance hierarchy of a public class  
> be a BC break as well? As you said, you nee

Yeah, I pondered this question too. And even though the classes have  
exactly the same API, changing the inheritance hierarchy is probably a  
BC break. A trait would be helpful here, but I guess an abstract base  
class would do too.

> Also, is $value being set to a stream really a BC break? This is  
> only the case when insert/updating a blob column, so it's the client  
> code that is setting it to a stream - which means it must already  
> have a dependency on a version of Horde_Db that can support it. Or  
> did I misunderstand something?

You never know what people do with the library, they could have  
extended on of the existing drivers that receive the Horde_Db_Value  
objects. I personally have been hit *inside* Horde_Db, though this  
could have been fixed without a BC break. But it's cleaner this way  
anyway.

-- 
Jan Schneider
The Horde Project
https://www.horde.org/

-- 
dev mailing list
Frequently Asked Questions: http://wiki.horde.org/FAQ
To unsubscribe, mail: [email protected]