Description
Version(s) affected 3.6.0
Description
The function signature for the AMQPSSLConnection construct was changed in 3.6.0. There were originally 9 parameters, now there are 8. The original 8th parameter was previously $ssl_protocol, which was a string. That parameter was removed, and now the 8th parameter is ?AMQPConnectionConfig $config (which was originally the 9th parameter). This causes a TypeError to be thrown if you were previously passing that parameter instead of relying on the default value (I'm guessing the reason more people didn't run into this issue is that they probably were using the default values).
There is no specific mention of this backwards compatibility breaking change in the change log. I had to hunt through the code to figure out it was changed here:
7e9e96d#diff-7ca812c052f6560fc53e2ba72fd1c40927c86467f86c80e2016ab92c107fc919L27
Construct in AMQPSSLConnection in 3.5.4:
public function __construct(
$host,
$port,
$user,
$password,
$vhost = '/',
$ssl_options = array(),
$options = array(),
$ssl_protocol = 'ssl', // This is the parameter that was removed
?AMQPConnectionConfig $config = null
)
Construct in AMQPSSLConnection in 3.6.0:
public function __construct(
$host,
$port,
$user,
$password,
$vhost = '/',
$ssl_options = array(),
$options = array(),
?AMQPConnectionConfig $config = null
)
Possible Solution
The change log should be updated to indicate this change so people upgrading can be prepared to adapt their code for it.
I am reposting this as requested with more details:
#1174