Because currently CURLFile have this constructor: public __construct <http://php.net/manual/en/curlfile.construct.php> ( string $filename [, string $mimetype [, string $postname ]] )
And we cannot replace this arguments to avoid BC break. 2015-04-23 11:59 GMT+03:00 Michael Wallner <m...@php.net>: > > On 22 Apr 2015 10:27, "Alexander Moskalev" <ir...@irker.net> wrote: > > > > Thanks to all for feedback! > > > > Let's try to integrate new feature to old class. > > We have constructor in CURLFile with one required parameter: $filename . > > To avoid BC break we cannot replace this parameter. So I suggest to do > it > > optional and add setBuffer() method. > > > > So we can create CURLFile with empty parameters in constructor and fill > it > > with setters. > > Have two more questions: > > 1) If we not fill all options or fille not compatible options, when we > must > > throw error? ? And what level of this error? (Sorry, I'm just php coder > and > > know about C language and php source so little) > > For file from disk(or other source) required $filename. For file from > > buffer required $buffer and $postname. > > 2) Curently CURLFile cannot be unserialized, because it contains > $filename > > (see source code). How it compatible with our dicussion? > > > > Why not a ctor as in: > > function __construct ($filename, $buffer = null) { > if (isset ($ buffer)) { > // use $ buffer > } else { > // use file contents > } > } > > The file name parameter can be of use anyway for posted file contents from > buffer. > > Cheers, > Mike > -- With regards, Alexander Moskalev ir...@irker.net ir...@php.net a.moska...@corp.badoo.com