Skip to content

Latest commit

 

History

History
1052 lines (681 loc) · 64.7 KB

CHANGELOG.md

File metadata and controls

1052 lines (681 loc) · 64.7 KB

Changelog

v3.7.1 (2024-09-03)

Full Changelog

Implemented enhancements:

  • Fix wrong stream IO error code, improve write speed #1192 (ramunasd)
  • AMQP Exception marker interface is for Throwable types #1189 (Ocramius)

v3.7.0 (2024-07-09)

Full Changelog

Implemented enhancements:

  • fix: create a new exception for each warning in IO layer with reference to previous #1183 (ramunasd)

Fixed bugs:

  • first error message thrown by stream_socket_enable_crypto() is not propagated to caller #1181

Closed issues:

  • feof() check in /Wire/IO/StreamIO::write() blocks connection #1176

Merged pull requests:

v3.6.2 (2024-04-15)

Full Changelog

Merged pull requests:

  • Trigger ssl_protocol deprecation when it is really not null and not AMQPConnectionConfig instance #1163 (SergeyKhrystenko)

v3.6.1 (2024-02-07)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • fix: throw exception on stream_socket_enable_crypto() warning #1158 (ramunasd)

Closed issues:

  • stream_set_blocking(): Argument #2 ($enable) must be of type bool, int given #1155
  • Connection option close_on_destruct doesn't work because of circular reference #1144
  • Cannot avoid static analysis issues with deprecation of $ssl_options in AMQPStreamConnection #1136

Merged pull requests:

v3.6.0 (2023-10-22)

Full Changelog

Implemented enhancements:

Fixed bugs:

Closed issues:

  • Wrong thrown AMQPTimeoutException-exception for heartbeat #1118
  • AMQPTimeoutException is thrown without reaching the timeout limit #1109
  • tls connection without verify peer failed #1108

Merged pull requests:

v3.5.4 (2023-07-01)

Full Changelog

Implemented enhancements:

  • feat(heartbeat): add support for lazy connections #1100 (ramunasd)

Fixed bugs:

  • Positive heartbeat of client is overwritten by server's 0 heartbeat value. All versions from 3.3.1 affected #1080

Closed issues:

  • Heartbeat senders do not work with lazy connections #1099

v3.5.3 (2023-04-03)

Full Changelog

Fixed bugs:

v3.5.2 (2023-03-01)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Does not pass $config parameter to AMQPSocketConnection using AMQPConnectionFactory::create #1076
  • Bug fix, Deprecation notice update #1077 (ssi-anik)

v3.5.1 (2023-01-20)

Full Changelog

Closed issues:

  • Connect error since 3.5.0 #1065

Merged pull requests:

v3.5.0 (2023-01-16)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • SIGHeartbeatSender uses fixed Signal #1039
  • Define default ssl context parameter #1060 (ramunasd)
  • Fix hardcoded signal code in SIGHeartbeatSender #1043 (ramunasd)

v3.4.0 (2022-10-18)

Full Changelog

Implemented enhancements:

  • Add the ability to set the connection name through AMQPConnectionConfig #1035 (i3bepb)

Fixed bugs:

  • v3.3.0 heartbeat error #1029

Merged pull requests:

  • Missing PHPDoc param in AbstractConnection constructor #1033 (i3bepb)
  • Split buffer and IO readers into separate classes #1031 (ramunasd)

v3.3.1 (2022-10-04)

Full Changelog

Fixed bugs:

Closed issues:

  • Flaky CI test runs #1027

v3.3.0 (2022-10-03)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Heartbeat of client overwrite without any conditions the one from server #1018
  • Fix heartbeat negotiation #1024 (ramunasd)
  • Throw connection exceptions on batch publish #983 (foment)

Merged pull requests:

v3.2.0 (2022-03-10)

Full Changelog

Implemented enhancements:

  • Channel method for continuous message consumption #977 (ramunasd)
  • Propagate real exceptions #976 (dmitryuk)
  • unified configuration class and factory for all kinds of connection #975 (ramunasd)
  • Custom PCNTL Heartbeat Sender #971 (khepin)

Fixed bugs:

  • PCNTL SIGTERM break on select ? #458
  • Add $restart_syscalls = true explicitly when calling pcntl_signal to avoid crashing SQL Server connections #972 (maxiwheat)

Merged pull requests:

v3.1.2 (2022-01-18)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Always restore original error handler after socket/stream actions #969 (ramunasd)

Closed issues:

  • Deprecation warnings on ArrayAccess methods #967

Merged pull requests:

  • add return type hints in AMQPAbstractCollection #968 (ramunasd)

v3.1.1 (2021-12-03)

Full Changelog

Fixed bugs:

  • fix deprecation notice from stream_select() on PHP8.1 #963 (ramunasd)

Closed issues:

  • Support for PHP 8.1 #959

v3.1.0 (2021-10-22)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Consumer fails with AMQP-rabbit doesn't define data of type [d] #924
  • Fixed composer php version constraint #916 (rkrx)

Closed issues:

  • How $channel->wait() work on loop forever #939
  • The header isn't fragmented causing large headers to hit the maximum frame size. #934
  • Keeping a connection open for publishing #932
  • prefetch_count seems to consume always only 1 message #919
  • Can't connect to ssl amqp hosts. #918
  • Updating "phpseclib/phpseclib" is necessary! #914
  • README - Non-existant code of conduct file #913
  • consumer_tag: Consumer identifier #909
  • AMQPLazyConnection::create_connection does not work #798

Merged pull requests:

  • throw exception on attempt to create lazy connection to multiple hosts #951 (ramunasd)
  • Fix static analysis warnings #948 (ramunasd)
  • Use correct default for read_write_timeout in AMQPStreamConnection#try_create_connection #923 (bezhermoso)
  • Improved examples and dosc #917 (corpsee)
  • Fix code style: unnecessary space #915 (maximal)

v3.0.0 (2021-03-16)

Full Changelog

Merged pull requests:

  • Change php required version in composer.json #905 (adoy)

v3.0.0-rc2 (2021-03-09)

Full Changelog

Fixed bugs:

Closed issues:

  • PHP 8 support issue #903

v3.0.0-rc1 (2021-03-08)

Full Changelog

Breaking changes:

Implemented enhancements:

Fixed bugs:

  • BigInteger breaks authoritative class maps #885
  • fix ValueError on closed or broken socket #888 (ramunasd)

Merged pull requests:

v2.12.3 (2021-03-01)

Full Changelog

Fixed bugs:

  • ValueError exception in PHP8 #883

Closed issues:

  • process multiple messages at the same #898
  • application_headers vs headers #890
  • Remove support for PHP 5.X #877

2.12.2 (2021-02-12)

Full Changelog

Implemented enhancements:

  • Add support for next major version of phpseclib/phpseclib #875 (ramunasd)

Fixed bugs:

  • Provide AMQPTable to exchange_declare #873
  • fix annotation when AMQPTable is allowed variable type #874 (ramunasd)
  • fix PCNTL heartbeat signal registration #866 (laurynasgadl)

Closed issues:

  • Type definition delivery tag differs #876
  • PHP 8 Deprecate required parameters after optional parameters issue #870
  • PCNTLHeartbeatSender would be never triggered again when connection in writing status #865
  • PHP8 deprecation warnings #860
  • PHP 8.0.0 Deprecated: Required parameter ... follows optional parameter ... in #856
  • The connection would lost on some environment and cause destruct failed #849
  • About message body string "quit" #848
  • Why is the client disconnecting automatically with no errors nor Exceptions? #847
  • PHP 8: Required parameter $io follows optional parameter $vhost #846
  • AMQPProtocolException phpdoc arguments type annotations are swapped #844
  • PHP Fatal error: Uncaught exception 'PhpAmqpLib\Exception\AMQPTimeoutException' with message 'The connection timed out after 3 sec while awaiting incoming data' #839
  • The dependency phpseclib needs an update to version 3.* #867

Merged pull requests:

v2.12.1 (2020-09-25)

Full Changelog

Implemented enhancements:

  • Tests should run with TLS enabled #758
  • Use docker containers for broker and proxy in travis CI tests #831 (ramunasd)

Fixed bugs:

  • wait_for_pending_acks results in: LogicException("Delivery tag cannot be changed") #827
  • Error Connecting to server(0): #825
  • validate basic_consume() arguments and avoid invalid callbacks #834 (ramunasd)

Closed issues:

  • Does the library supports federation conf? #826
  • Publishing not happend after publishing to non-existent exchange #823

Merged pull requests:

v2.12.0 (2020-08-25)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Adding exception handling for better user experience #810
  • Possible blocking connection even when connection_timeout is specified #804
  • use simple output instead of STDOUT in debug helper #819 (ramunasd)
  • add missing timeout param for connection handshake response #812 (ramunasd)

Closed issues:

  • Setting x-ha-policy from client side is not longer available since version 3.0 #811
  • Debug in some cases is not working - possible fix - line 29 in DebugHelper #809
  • when I want to use publish_batch in confirm: 2 #807
  • when I want to use publish_batch in confirm #806
  • NullClasses for testing #802

Merged pull requests:

v2.11.3 (2020-05-13)

Full Changelog

Fixed bugs:

  • Unexpected heartbeat missed exception #793
  • Fix unexpected missed heartbeat exception #794 (ramunasd)

v2.11.2 (2020-04-30)

Full Changelog

Fixed bugs:

  • Perform socket/stream select before data write #791 (ramunasd)

Closed issues:

  • Fatal error: Uncaught exception 'PhpAmqpLib\Exception\AMQPConnectionClosedException' with message 'FRAME_ERROR - type 2, first 16 octets #789
  • Incorrect behaviour when heartbeat is missing #787
  • How to know When rabbitmq server get last heartbeat from client? #783

v2.11.1 (2020-02-24)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Handling of SOCKET_EAGAIN in StreamIO not working in PHP 7.4 #764
  • fix: ensure hosts is an array, otherwise latest_exception can be null #778 (mr-feek)
  • change phpDocumentator template, fix incorrect constructor documentation #771 (ramunasd)

Closed issues:

  • circular reference #759

Merged pull requests:

v2.11.0 (2019-11-19)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Exception while handling AMQPTimeoutException #752
  • Fix AMQPTimeoutException handling #753 (kozlice)

Closed issues:

  • Amazon MQ amqp+ssl #757
  • shell_exec(): Unable to execute '' #756
  • Remove bcmath dependency #694

Merged pull requests:

  • Fix phpunit tests reported as risked #755 (ramunasd)
  • throw AMQPConnectionClosedException when broker wants to close connection #750 (ramunasd)

v2.10.1 (2019-10-10)

Full Changelog

Implemented enhancements:

Fixed bugs:

Closed issues:

  • basic_publish and memory alarms #743
  • Connection timeout error #739
  • Exchanges list #734
  • Cannot create a durable queue #731
  • isConnected remains true while AMQPConnectionClosedException is thrown #730
  • Use v2.9~2.10, the CPU will 99% when waiting for new messages. v2.8 has no such problem. #729
  • Headers exchange - php example #554
  • AMQPMessage::basic_consume + $nowait=null results in $nowait=true #422

Merged pull requests:

v2.10.0 (2019-08-08)

Full Changelog

Closed issues:

  • Update API docs #721

Merged pull requests:

  • Run toxiproxy based connection tests on travis-ci #727 (ramunasd)

v2.10.0-rc1 (2019-08-08)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • UNIX only SOCKET_* constants trigger E_NOTICE on Windows #723
  • Fix wrong exception type on failed connect to broker #716 (ramunasd)

Closed issues:

  • Enhance PHPUnit version definitions in composer.json #718
  • Connection timeout disguised as missed server heartbeat #713
  • why php alway quit #708
  • Is Channel access by reference a possibility? #707
  • Broken pipe or closed connection #706
  • Warning for SOCKET_EWOULDBLOCK not defined #705
  • how to get Consumer Cancel Notify #704
  • Long running producer -- can send messages to queues already declared, but can't declare new queues #703
  • [Question] php-amqplib reuse connection #702
  • Enabling heartbeat by default throws PHP Fatal error #699
  • FATAL ERROR: Call to a member function send_content() on null #698
  • stream_select(): You MUST recompile PHP with a larger value of FD_SETSIZE #693
  • report error inqueue_declare #692
  • Catch Them all except: PhpAmqpLib\Exception\AMQPConnectionClosedException #691
  • stream_socket_client unable to connect (Unknown error) - OpenSSL 1.0 vs 1.1 #687
  • High CPU usage after 2.9.0 release. #686
  • Always allow to set a timeout #89

Merged pull requests:

v2.9.2 (2019-04-24)

Full Changelog

Implemented enhancements:

  • Deprecate access to internal properties and methods #673 (ramunasd)

Fixed bugs:

  • Changes in SSL handling breaks bschmitt/laravel-amqp #672

Closed issues:

  • stream_socket_client(): unable to connect to tcp:// #682
  • Broken pipe connection #679
  • Error Wrong parameters for PhpAmqpLib\Exception\AMQPRuntimeException([string $message [, long $code [, Throwable $previous = NULL]]]) #671
  • stream_select(): unable to select [4]: Interrupted system call (max_fd=5) #670
  • AMQP SSL Broken Pipe #669
  • Default heartbeat settings #563

Merged pull requests:

v2.9.1 (2019-03-26)

Full Changelog

Fixed bugs:

  • Undefined constant SOCKET_EAGAIN in Windows #664

Closed issues:

  • Revert some non-backwards-compatible changes #666
  • getting AMQPTimeoutException on 150+ publishes/second. #665

Merged pull requests:

v2.9.0 (2019-03-22)

Full Changelog

Implemented enhancements:

  • php-amqp AMQPStreamConnection abstraction class constructor sets heartbeat = 0, keepalive = false #374

Fixed bugs:

  • Fix wrong error code on stream connection exception #663 (ramunasd)

v2.9.0-rc2 (2019-03-18)

Full Changelog

Closed issues:

  • Existing error handler is nuked by class StreamIO #655
  • Please, publish your OpenPGP key #654
  • [2.7,2.8] StreamIO force protocol "ssl" (hardcoded) #641
  • Connection remains isConnected === true while AMQPHeartbeatMissedException is thrown #627
  • Duplicate call to AbstractIO::connect() during reconnecting (AbstractConnection::reconnect()) #626
  • infinite loop inside StreamIO::write, in case of broken connection #624
  • heartbeat problem on non_blocking consumers #508
  • isConnected was still true when broken pipe or close connection in channel->wait() #389
  • Keepalive and heartbeat on ssl #371

Merged pull requests:

  • Allow choosing a different protocol for SSL/TLS #661 (lukebakken)
  • Remove AbstractIO reconnect as it is only used, incorrectly, in one p… #660 (lukebakken)
  • Catch a couple exceptions in select #659 (lukebakken)
  • Throw exception if keepalive cannot be enabled on ssl connections #658 (ramunasd)

v2.9.0-rc1 (2019-03-08)

Full Changelog

Merged pull requests:

  • Handle broken pipe or closed connection exceptions #653 (ramunasd)

v2.9.0-beta.1 (2019-02-27)

Full Changelog

Implemented enhancements:

  • Send a specific exception when the vhost doesn't exist #343

Fixed bugs:

  • Signals not being handled correctly #649
  • Incorrect list of arguments for AMQPRuntimeException causes fatal error #637
  • Endless loop after broken connection with rabbitmq in AMQPReader::rawread because of zero timeout #622

Closed issues:

  • 如何判断 channel->basic_publish 是否成功? #646
  • 在哪里能设置 x-expires呢,在不修改库代码的情况下 #644
  • Connection is aborted without Exception #639
  • Error: The connection timed out after 3 sec while awaiting incoming data #636
  • What compatibility with Symfony4 #635
  • Workers consuming multiple queues in topic exchange don't always process in parallel prefetch_count=1 #607
  • Call protected function outside class #604
  • Queue declare not timing out #561
  • Error handler relies on locale setting #557
  • Error handling of connection issues #548
  • Right way to use AMQPSocketConnection #547
  • basic_qos() fails static analysis #537
  • check_heartbeat in write() at StreamIO #507
  • Return listener not called #490
  • pcntl SIGHUP Consumer restart not working in demo #489
  • Add Roadmap #485
  • Invalid frame type 65 #437
  • Why are we reconnecting in check_heartbeat method? #309
  • heartbeats and AMQPTimeoutException #249
  • AMPConnection just sits there #248
  • Repeated Acknowledgements with SetBody() #154
  • StreamIO::read loops infinitely if broker blocks producers #148
  • AMQPConnection can hang in __destruct after a write() failed #82

Merged pull requests:

v2.8.2-rc3 (2018-12-11)

Full Changelog

v2.8.2-rc2 (2018-12-10)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Error when systemd tries to restart workers since 2.8.0 #611

Merged pull requests:

  • Fix wrong exception type on stream timeouts and signals #621 (ramunasd)

v2.8.2-rc1 (2018-11-29)

Full Changelog

Fixed bugs:

  • Fix and add test for signal handling with PCNTL extension #630 (Shivox)

Closed issues:

  • How do I listen to all queues #629
  • Broken pipe or closed connection #628
  • yii queue/listen No "message_id" property #625
  • Long phpamqplib.DEBUG: Queue message processed logs before throwing fwrite #623
  • Undefined constant SOCKET_EAGAIN in Windows #619

Merged pull requests:

  • Fix undefined constant SOCKET_EAGAIN in Windows #620 (MaxwellZY)

v2.8.1 (2018-11-13)

Full Changelog

v2.8.1-rc3 (2018-11-07)

Full Changelog

Fixed bugs:

  • fwrite(): send of 3728 bytes failed with errno=11 Resource temporarily unavailable #613

Closed issues:

  • calling check_heartbeat causes connection to close #617
  • message not received by the server but no exception thrown #595

Merged pull requests:

v2.8.1-rc2 (2018-11-02)

Full Changelog

Closed issues:

  • AMQPStreamConnection $connection_timeout - milliseconds or seconds? #616

Merged pull requests:

  • Parse error string to determine error number instead of using errno #615 (davidgreisler)

v2.8.1-rc1 (2018-10-30)

Full Changelog

Fixed bugs:

Closed issues:

  • Getting really often "Connection reset by peer" #546

v2.8.0 (2018-10-23)

Full Changelog

Closed issues:

  • Feature Request: Allow overriding of LIBRARY_PROPERTIES #603

Merged pull requests:

v2.7.2.1 (2018-10-17)

Full Changelog

Closed issues:

  • When heartbeats parameter is greater than 0 #352

v2.8.0-rc1 (2018-10-11)

Full Changelog

Implemented enhancements:

  • lazy channels #291

Closed issues:

  • "Server nack'ed unknown delivery_tag" when using batch_basic_publish #597
  • fwrite: errno=11 in StreamIO #596
  • where is the function "AMQPStreamConnection::create_connection()" #586
  • RPC server not sending reply down the wire #585
  • Please add support for AMQP 1.0 #583
  • Connecting to Red Hat JBOSS #580
  • Consuming message coming in truncated #579
  • can't throw fwrite() error immediately #578
  • Can't reuse AMQPMessage object with new properties #576
  • Invalid frame type 65 #572
  • The set_nack_handle can not be triggered correctly. #571
  • channel->wait() with timeout make memory leak #566
  • SOCKS Proxy between RMQ and client #558
  • Version 2.7 connects as 2.6 #555
  • Update minimum php version in composer.json #543
  • StreamIO can wait for data indefinitely #416
  • Releasing connection reference too early in a channel leads to a segmentation fault #415
  • StreamConnection does not time out #408
  • $this->debug can be null in AbstractConnection.php #386
  • Read and write to multiple queues within one script #293
  • decode() method not defined #160

Merged pull requests:

v2.7.3 (2018-04-30)

Full Changelog

Closed issues:

  • stream_select() ErrorException FD_SETSIZE #552
  • Whoops, looks like something went wrong. (1/1) ErrorException getimagesize(): send of 18 bytes failed with errno=104 Connection reset by peer #551
  • no-local? #550
  • Can php-amqplib consumer work on a web page? #549
  • Functional tests fail after upgrading to 2.7.1 and 2.7.2 #545
  • fwrite failure / not sure how to debug further #544

Previous releases

2.7.2 - 2018-02-11

GitHub Milestone

  • PHP 5.3 compatibility PR

2.7.1 - 2018-02-01

  • Support PHPUnit 6 PR
  • Use tcp_nodelay for StreamIO PR
  • Pass connection timeout to wait method PR
  • Fix possible indefinite waiting for data in StreamIO PR, PR
  • Change protected method check_heartbeat to public PR
  • Ensure access levels are consistent for calling check_heartbeat PR

2.7.0 - 2017-09-20

Added

  • Increased overall test coverage
  • Bring heartbeat support to socket connection
  • Add message delivery tag for publisher confirms
  • Add support for serializing DateTimeImmutable objects

Fixed

  • Fixed infinite loop on reconnect - check_heartbeat
  • Fixed signal handling exit example
  • Fixed exchange_unbind arguments
  • Fixed invalid annotation for channel_id
  • Fixed socket null error on php 5.3 version
  • Fixed timeout parameters on HHVM before calling stream_select

Changed

  • declare(ticks=1) no longer needed after PHP5.3 / amqplib 2.4.1
  • Minor DebugHelper improvements

Enhancements

  • Add extensions requirements to README.md
  • Add PHP 7.1 to Travis build
  • Reduce memory usage in StreamIO::write()
  • Re-enable heartbeats after reconnection

2.6.3 - 2016-04-11

Added

  • Added the ability to set timeout as float

Fixed

  • Fixed restoring of error_handler on connection error

Enhancements

  • Verify read_write_timeout is at least 2x the heartbeat (if set)
  • Many PHPDoc fixes
  • Throw exception when trying to create an exchange on a closed connection

2.6.2 - 2016-03-02

Added

  • Added AMQPLazySocketConnection
  • AbstractConnection::getServerProperties method to retrieve server properties.
  • AMQPReader::wait() will throw IOWaitException on stream_select failure
  • Add PHPDocs to Auto-generated Protocol Classes

Fixed

  • Disable heartbeat when closing connection
  • Fix for when the default error handler is not restored in StreamIO

Enhancements

  • Cleanup tests and improve testing performance
  • Confirm received valid frame type on wait_frame in AbstractConnection
  • Update DEMO files closer to PSR-2 standards

2.6.1 - 2016-02-12

Added

  • Add constants for delivery modes to AMQPMessage

Fixed

  • Fix some PHPDoc problems
  • AbstractCollection value de/encoding on PHP7
  • StreamIO: fix "bad write retry" in SSL mode

Enhancements

  • Update PHPUnit configuration
  • Add scrutinizer-ci configuration
  • Organizational changes from videlalvaro to php-amqplib org
  • Minor complexity optimizations, code organization, and code cleanup

2.6.0 - 2015-09-23

BC Breaking Changes

  • The AMQPStreamConnection class now throws ErrorExceptions when errors happen while reading/writing to the network.

Added

  • Heartbeat frames will decrease the timeout used when calling wait_channel - heartbeat frames do not reset the timeout

Fixed

  • Declared the class AbstractChannel as being an abstract class
  • Reads, writes and signals respond immediately instead of waiting for a timeout
  • Fatal error in some cases on Channel.wait with timeout when RabbitMQ restarted
  • Remove warning when trying to push a deferred frame

* This Changelog was automatically generated by github_changelog_generator