Php-amqplib: Ideas and deprecations for next major release 4.0

Created on 14 Mar 2019  路  4Comments  路  Source: php-amqplib/php-amqplib

Feel free to comment and suggest what can be changed/refactored to make things more fluent and consistent in next major version.

  • [ ] Use one immutable object for all connection options and reuse it in all connection types
  • [ ] Merge StreamIO and SocketIO into corresponding connection class
  • [ ] Connection class should not extend channel class therefore no calls to protected methods
  • [ ] Split AMQPChannel->wait() into to separate blocking and non-blocking methods, separate method for internal use
  • [ ] Refactor existing TODO
  • [ ] Deprecate AMQPSSLConnection, activate SSL context whenever protocol is secure
  • [x] Deprecate public properties in connection and channel classes #673
  • [x] Deprecate global constants #732
  • [ ] PSR-12 code style
  • [ ] Changelog standard https://keepachangelog.com/en/1.0.0/
  • [x] Remove bcmath dependency #573 #694 #695 #737 #754
  • [ ] PHP > 7.0, typehints for most public methods
  • [ ] Use https://github.com/reactphp/socket or https://github.com/amphp/socket for low level non-blocking IO operations
discussion

Most helpful comment

@ramunasd If isn't deadline for release next major version with support PHP 8.0, its big problem, because PHP 8.0 is released and this library has no support for it.

All 4 comments

I'd love something like batch-consumers that are available in your Symfony2 bundle: https://github.com/php-amqplib/RabbitMqBundle#batch-consumers

the use case I have is something like this:

  • We have 100k incoming messages, all messages contain a string that has to be processed, a "string ID" and a callback URL
  • Each string is processed, message after message
  • Only wanna do a "callback" to the callback URL every X messages containing the "string ID" from every msg (since the callback system may not be able to handle the number of requests that we can process per second by the consumers).

I'm trying to find a nice way of doing it currently with php-amqplib directly but a bit lost.

All PRs for compatibility with PHP 8.0 are closed due to alleged BC. In https://github.com/php-amqplib/php-amqplib/pull/858#issuecomment-751369700 is information about PHP 8.0 support in next major version 3.0.

@nubeiro @lukebakken @ramunasd When is expected finish version 3.0 with support PHP 8.0? According to branch dev-3.x, there is no development. PHP 8.0 support is required.

@liborm85 there is no confirmed roadmap or deadline for next major version. Quite a lot of things must be changed and well tested. Please use mailing list[1] or gitter channel[2] for specific version support related questions.

[1] https://groups.google.com/forum/#!forum/php-amqplib-devel
[2] https://gitter.im/php-amqplib/RabbitMqBundle

@ramunasd If isn't deadline for release next major version with support PHP 8.0, its big problem, because PHP 8.0 is released and this library has no support for it.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

henriqueoliveira picture henriqueoliveira  路  10Comments

azngeek picture azngeek  路  7Comments

d3xt3r01 picture d3xt3r01  路  8Comments

Majkl578 picture Majkl578  路  8Comments

zengkun100 picture zengkun100  路  4Comments