Re: Remove $age parameter of curl_version()

From: Date: Wed, 01 May 2019 17:40:04 +0000
Subject: Re: Remove $age parameter of curl_version()
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-105549@lists.php.net to get a copy of this message
On Wed, May 1, 2019 at 1:18 PM Christoph M. Becker <cmbecker69@gmx.de> wrote: > > curl_version()[1] (of ext/curl) makes curl_version_info()[2] (of > libcurl) available to PHP userland. The latter requires to pass an age > argument which usually is CURLVERSION_NOW, so that the information > returned by the runtime matches the declarations used during compile > time. For C programs it is simply necessary to pass this information, > and it might make sense to pass something else than CURLVERSION_NOW, but > the PHP wrapper assumes that the return value of curl_version_info() > matches the compile time declarations anyway, so passing anything else > might give bad results. > It looks like the ext/curl binding [1] handles run-time age values that differ from compile-time, as it makes checks for if (d->age). Am I missing something? > Therefore I suggest to remove this parameter in the long run altogether. > For PHP 7.4 I suggest to deprecate using the parameter, and also to > ignore anything that is not CURLVERSION_NOW, and to raise a warning in > this case. I.e. something like the following behavior: > > // okay > curl_version(); > > // E_DEPRECATED: passing an argument is deprecated > curl_version(CURLVERSION_NOW); > > // E_WARNING: argument ignored > curl_version($not_curlversion_now); > > Thoughts? Do I overlook something important? > Well, what about: if (false === curl_version(3)) { throw new \Exception('Please rebuild PHP with curl at least version 7.16.1'); } Here the developer has used age as a proxy to a major release point of curl, as opposed to say: if (version_compare(curl_version()['version'], '7.16.1', '<') { throw new Exception...; } [1]: https://github.com/php/php-src/blob/master/ext/curl/interface.c#L1824

« previous php.internals (#105549) next »