[Tickets #10955] Create seams for customizing settings on Horde_Http_Request objects

bugs at horde.org bugs at horde.org
Wed Feb 1 16:31:11 UTC 2012


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/10955
------------------------------------------------------------------------------
  Ticket             | 10955
  Created By         | bob at bluestatedigital.com
  Summary            | Create seams for customizing settings on
                     | Horde_Http_Request objects
  Queue              | Horde Framework Packages
  Version            | Git master
  Type               | Enhancement
  State              | New
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             |
------------------------------------------------------------------------------


bob at bluestatedigital.com (2012-02-01 16:31) wrote:

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.





More information about the bugs mailing list