<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="https://dev.horde.org/themes/horde//default/feed-rss.xsl" type="text/xsl"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 
 <channel> 
  <title>Create seams for customizing settings on Horde_Http_Request objects</title> 
  <pubDate>Thu, 09 Apr 2026 16:11:13 +0000</pubDate> 
  <link>https://bugs.horde.org/ticket/10955</link> 
  <atom:link rel="self" type="application/rss+xml" title="Create seams for customizing settings on Horde_Http_Request objects" href="https://bugs.horde.org/ticket/10955/rss" /> 
  <description>Create seams for customizing settings on Horde_Http_Request objects</description> 
 
   
   
  <item> 
   <title>The stream context options on Horde_Http_Request_Fopen and c</title> 
   <description>The stream context options on Horde_Http_Request_Fopen and curl options on Horde_Http_Request_Curl options are inaccessible.  There are no seams to modify them without creating a new class, copy/pasting the oversized send() method and apply customization within.  This leads to unnecessary work the next time you try to upgrade the underlying Horde libs.

The quickest solution is to extract the initialization of $opts and $curl into a protected method.  This would allow deveopers to extend the class, overwrite the method, and add or modify options before returning the value to send() for usage.

If publishing protected methods like this in a public project is not desirable you could possibly create an options Builder (meaning Builder Pattern) which could be injected.  The Builder could have methods like setProxy($host, $port), setAuth($scheme, $username, $password), and of course a build()/make()/create() method that returns the assembled object.  The Builder could be extended by developers to add more options at any stage of the building process.</description> 
   <pubDate>Wed, 01 Feb 2012 16:31:11 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/10955#t70079</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
