Summary | Create seams for customizing settings on Horde_Http_Request objects |
Queue | Horde Framework Packages |
Queue Version | Git master |
Type | Enhancement |
State | Accepted |
Priority | 1. Low |
Owners | |
Requester | bob (at) bluestatedigital (dot) com |
Created | 02/01/2012 (4851 days ago) |
Due | |
Updated | 01/18/2016 (3404 days ago) |
Assigned | |
Resolved | |
Milestone | |
Patch | No |
State ⇒ New
Priority ⇒ 1. Low
Type ⇒ Enhancement
Summary ⇒ Create seams for customizing settings on Horde_Http_Request objects
Queue ⇒ Horde Framework Packages
Milestone ⇒
Patch ⇒ No
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.