Re: Net_URL: default argument values override object properties in initialize()
| From: | Justin Patrin | Date: | Thu, 10 May 2007 22:33:17 +0000 |
| Subject: | Re: Net_URL: default argument values override object properties in initialize() | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-46724@lists.php.net to get a copy of this message | ||
On 5/10/07, spaze <spaze-bugs@exploited.cz> wrote:
Hello, sorry for writing to the list, I tried to report this on the issue tracker, but after submitting I got this message on the website: | ERROR: | Critical internal error: could not send email to your address | <minehere>, please write a mail message to the <i>pear-dev</i>mailing | list and report this problem with details. We apologize for the | problem, your report will help us to fix it for future users: No such | handle found, cannot send confirmation email Anyway, I have found and fixed issue/bug with default argument values overriding object properties in initialize() in the CVS sources of Net_URL (running PHP 5.2.1 on Win32 with CVS version of Net_URL, URL.php revision 1.45.) Description: Regarding the revision 1.45 of URL.php there's a showstopper in initialize(): In __construct() you set the object properties and then call the initialize() method with no arguments:Your patch didn't make it to the list. Try attaching it with a text/plain mime type (.txt extension). -- Justin Patrin$this->url = $url; $this->useBrackets = $useBrackets;$this->initialize();But initialize() is declared with default argument values: function initialize($url = null, $useBrackets = true) and later you copy the arguments into object properties:$this->useBrackets = $useBrackets; $this->url = $url;So the $url passed to the contructor is not taken into care and the defaults are used. Plus sometimes you refer to the function argument instead of the object property: if (!preg_match('/^[a-z0-9]+:\/\//i', $url)) { In previous revisions (i.e. stable 1.36) everything works fine. Please find attached patch against 1.46 which fixes all the problems, thanks for reviewing.