amqp/amqp.php (250 lines of code) (raw):

<?php /** * Stubs for AMQP * https://pecl.php.net/package/amqp * https://github.com/php-amqp/php-amqp */ use JetBrains\PhpStorm\Deprecated; /** * Passing in this constant as a flag will forcefully disable all other flags. * Use this if you want to temporarily disable the amqp.auto_ack ini setting. */ const AMQP_NOPARAM = 0; /** * Passing in this constant as a flag to proper methods will forcefully ignore all other flags. * Do not send basic.consume request during AMQPQueue::consume(). Use this if you want to run callback on top of previously * declared consumers. */ const AMQP_JUST_CONSUME = 1; /** * Durable exchanges and queues will survive a broker restart, complete with all of their data. */ const AMQP_DURABLE = 2; /** * Passive exchanges and queues will not be redeclared, but the broker will throw an error if the exchange or queue does not exist. */ const AMQP_PASSIVE = 4; /** * Valid for queues only, this flag indicates that only one client can be listening to and consuming from this queue. */ const AMQP_EXCLUSIVE = 8; /** * For exchanges, the auto delete flag indicates that the exchange will be deleted as soon as no more queues are bound * to it. If no queues were ever bound the exchange, the exchange will never be deleted. For queues, the auto delete * flag indicates that the queue will be deleted as soon as there are no more listeners subscribed to it. If no * subscription has ever been active, the queue will never be deleted. Note: Exclusive queues will always be * automatically deleted with the client disconnects. */ const AMQP_AUTODELETE = 16; /** * Clients are not allowed to make specific queue bindings to exchanges defined with this flag. */ const AMQP_INTERNAL = 32; /** * When passed to the consume method for a clustered environment, do not consume from the local node. */ const AMQP_NOLOCAL = 64; /** * When passed to the {@link AMQPQueue::get()} and {@link AMQPQueue::consume()} methods as a flag, * the messages will be immediately marked as acknowledged by the server upon delivery. */ const AMQP_AUTOACK = 128; /** * Passed on queue creation, this flag indicates that the queue should be deleted if it becomes empty. */ const AMQP_IFEMPTY = 256; /** * Passed on queue or exchange creation, this flag indicates that the queue or exchange should be * deleted when no clients are connected to the given queue or exchange. */ const AMQP_IFUNUSED = 512; /** * When publishing a message, the message must be routed to a valid queue. If it is not, an error will be returned. */ const AMQP_MANDATORY = 1024; /** * When publishing a message, mark this message for immediate processing by the broker. (High priority message.) */ const AMQP_IMMEDIATE = 2048; /** * If set during a call to {@link AMQPQueue::ack()}, the delivery tag is treated as "up to and including", so that multiple * messages can be acknowledged with a single method. If set to zero, the delivery tag refers to a single message. * If the AMQP_MULTIPLE flag is set, and the delivery tag is zero, this indicates acknowledgement of all outstanding * messages. */ const AMQP_MULTIPLE = 4096; /** * If set during a call to {@link AMQPExchange::bind()}, the server will not respond to the method.The client should not wait * for a reply method. If the server could not complete the method it will raise a channel or connection exception. */ const AMQP_NOWAIT = 8192; /** * If set during a call to {@link AMQPQueue::nack()}, the message will be placed back to the queue. */ const AMQP_REQUEUE = 16384; /** * A direct exchange type. */ const AMQP_EX_TYPE_DIRECT = 'direct'; /** * A fanout exchange type. */ const AMQP_EX_TYPE_FANOUT = 'fanout'; /** * A topic exchange type. */ const AMQP_EX_TYPE_TOPIC = 'topic'; /** * A header exchange type. */ const AMQP_EX_TYPE_HEADERS = 'headers'; const AMQP_OS_SOCKET_TIMEOUT_ERRNO = 536870947; const PHP_AMQP_MAX_CHANNELS = 256; const AMQP_SASL_METHOD_PLAIN = 0; const AMQP_SASL_METHOD_EXTERNAL = 1; /** * Default delivery mode, keeps the message in memory when the message is placed in a queue. */ const AMQP_DELIVERY_MODE_TRANSIENT = 1; /** * Writes the message to the disk when the message is placed in a durable queue. */ const AMQP_DELIVERY_MODE_PERSISTENT = 2; /** * Extension version string */ const AMQP_EXTENSION_VERSION = '1.1.12alpha3'; /** * Extension major version */ const AMQP_EXTENSION_VERSION_MAJOR = 0; /** * Extension minor version */ const AMQP_EXTENSION_VERSION_MINOR = 1; /** * Extension patch version */ const AMQP_EXTENSION_VERSION_PATCH = 12; /** * Extension extra version suffix */ const AMQP_EXTENSION_VERSION_EXTRA = 'alpha3'; /** * Extension version ID */ const AMQP_EXTENSION_VERSION_ID = '10112'; /** * stub class representing AMQPBasicProperties from pecl-amqp */ class AMQPBasicProperties { public function __construct( ?string $contentType = null, ?string $contentEncoding = null, array $headers = [], int $deliveryMode = AMQP_DELIVERY_MODE_TRANSIENT, int $priority = 0, ?string $correlationId = null, ?string $replyTo = null, ?string $expiration = null, ?string $messageId = null, ?int $timestamp = null, ?string $type = null, ?string $userId = null, ?string $appId = null, ?string $clusterId = null ) {} /** * Get the message content type. * * @return string|null The content type of the message. */ public function getContentType() {} /** * Get the content encoding of the message. * * @return string|null The content encoding of the message. */ public function getContentEncoding() {} /** * Get the headers of the message. * * @return array An array of key value pairs associated with the message. */ public function getHeaders() {} /** * Get the delivery mode of the message. * * @return int The delivery mode of the message. */ public function getDeliveryMode() {} /** * Get the priority of the message. * * @return int The message priority. */ public function getPriority() {} /** * Get the message correlation id. * * @return string|null The correlation id of the message. */ public function getCorrelationId() {} /** * Get the reply-to address of the message. * * @return string|null The contents of the reply to field. */ public function getReplyTo() {} /** * Get the expiration of the message. * * @return string|null The message expiration. */ public function getExpiration() {} /** * Get the message id of the message. * * @return string|null The message id */ public function getMessageId() {} /** * Get the timestamp of the message. * * @return int|null The message timestamp. */ public function getTimestamp() {} /** * Get the message type. * * @return string|null The message type. */ public function getType() {} /** * Get the message user id. * * @return string|null The message user id. */ public function getUserId() {} /** * Get the application id of the message. * * @return string|null The application id of the message. */ public function getAppId() {} /** * Get the cluster id of the message. * * @return string|null The cluster id of the message. */ public function getClusterId() {} } /** * stub class representing AMQPChannel from pecl-amqp */ class AMQPChannel { /** * Commit a pending transaction. * * @throws AMQPChannelException If no transaction was started prior to * calling this method. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function commitTransaction() {} /** * Create an instance of an AMQPChannel object. * * @param AMQPConnection $amqp_connection An instance of AMQPConnection * with an active connection to a * broker. * * @throws AMQPConnectionException If the connection to the broker * was lost. */ public function __construct(AMQPConnection $amqp_connection) {} /** * Check the channel connection. * * @return bool Indicates whether the channel is connected. */ public function isConnected() {} /** * Closes the channel. * * @return void */ public function close() {} /** * Return internal channel ID * * @return int */ public function getChannelId() {} /** * Set the Quality Of Service settings for the given channel. * * Specify the amount of data to prefetch in terms of window size (octets) * or number of messages from a queue during a AMQPQueue::consume() or * AMQPQueue::get() method call. The client will prefetch data up to size * octets or count messages from the server, whichever limit is hit first. * Setting either value to 0 will instruct the client to ignore that * particular setting. A call to AMQPChannel::qos() will overwrite any * values set by calling AMQPChannel::setPrefetchSize() and * AMQPChannel::setPrefetchCount(). If the call to either * AMQPQueue::consume() or AMQPQueue::get() is done with the AMQP_AUTOACK * flag set, the client will not do any prefetching of data, regardless of * the QOS settings. * * @param int $size The window size, in octets, to prefetch. * @param int $count The number of messages to prefetch. * @param bool $global TRUE for global, FALSE for consumer. FALSE by default. * * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function qos($size, $count, $global = false) {} /** * Rollback a transaction. * * Rollback an existing transaction. AMQPChannel::startTransaction() must * be called prior to this. * * @throws AMQPChannelException If no transaction was started prior to * calling this method. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function rollbackTransaction() {} /** * Set the number of messages to prefetch from the broker for each consumer. * * Set the number of messages to prefetch from the broker during a call to * AMQPQueue::consume() or AMQPQueue::get(). * * @param int $count The number of messages to prefetch. * * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function setPrefetchCount($count) {} /** * Get the number of messages to prefetch from the broker for each consumer. * * @return int */ public function getPrefetchCount() {} /** * Set the window size to prefetch from the broker for each consumer. * * Set the prefetch window size, in octets, during a call to * AMQPQueue::consume() or AMQPQueue::get(). Any call to this method will * automatically set the prefetch message count to 0, meaning that the * prefetch message count setting will be ignored. If the call to either * AMQPQueue::consume() or AMQPQueue::get() is done with the AMQP_AUTOACK * flag set, this setting will be ignored. * * @param int $size The window size, in octets, to prefetch. * * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function setPrefetchSize($size) {} /** * Get the window size to prefetch from the broker for each consumer. * * @return int */ public function getPrefetchSize() {} /** * Set the number of messages to prefetch from the broker across all consumers. * * Set the number of messages to prefetch from the broker during a call to * AMQPQueue::consume() or AMQPQueue::get(). * * @param int $count The number of messages to prefetch. * * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function setGlobalPrefetchCount($count) {} /** * Get the number of messages to prefetch from the broker across all consumers. * * @return int */ public function getGlobalPrefetchCount() {} /** * Set the window size to prefetch from the broker for all consumers. * * Set the prefetch window size, in octets, during a call to * AMQPQueue::consume() or AMQPQueue::get(). Any call to this method will * automatically set the prefetch message count to 0, meaning that the * prefetch message count setting will be ignored. If the call to either * AMQPQueue::consume() or AMQPQueue::get() is done with the AMQP_AUTOACK * flag set, this setting will be ignored. * * @param int $size The window size, in octets, to prefetch. * * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function setGlobalPrefetchSize($size) {} /** * Get the window size to prefetch from the broker for all consumers. * * @return int */ public function getGlobalPrefetchSize() {} /** * Start a transaction. * * This method must be called on the given channel prior to calling * AMQPChannel::commitTransaction() or AMQPChannel::rollbackTransaction(). * * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function startTransaction() {} /** * Get the AMQPConnection object in use * * @return AMQPConnection */ public function getConnection() {} /** * Redeliver unacknowledged messages. * * @param bool $requeue * * @return void */ public function basicRecover($requeue = true) {} /** * Set the channel to use publisher acknowledgements. This can only used on a non-transactional channel. * * @return void */ public function confirmSelect() {} /** * Set callback to process basic.ack and basic.nac AMQP server methods (applicable when channel in confirm mode). * * @param callable|null $ack_callback * @param callable|null $nack_callback * * Callback functions with all arguments have the following signature: * * function ack_callback(int $deliveryTag, bool $multiple) : bool; * function nack_callback(int $deliveryTag, bool $multiple, bool $requeue) : bool; * * and should return boolean false when wait loop should be canceled. * * Note, basic.nack server method will only be delivered if an internal error occurs in the Erlang process * responsible for a queue (see https://www.rabbitmq.com/confirms.html for details). * * @return void */ public function setConfirmCallback(callable $ack_callback = null, callable $nack_callback = null) {} /** * Wait until all messages published since the last call have been either ack'd or nack'd by the broker. * * Note, this method also catch all basic.return message from server. * * @param float $timeout Timeout in seconds. May be fractional. * * @throws AMQPQueueException If timeout occurs. * * @return void */ public function waitForConfirm($timeout = 0.0) {} /** * Set callback to process basic.return AMQP server method * * @param callable|null $return_callback * * Callback function with all arguments has the following signature: * * function callback(int $reply_code, * string $reply_text, * string $exchange, * string $routingKey, * AMQPBasicProperties $properties, * string $body) : bool; * * and should return boolean false when wait loop should be canceled. * * @return void */ public function setReturnCallback(callable $return_callback = null) {} /** * Start wait loop for basic.return AMQP server methods * * @param float $timeout Timeout in seconds. May be fractional. * * @throws AMQPQueueException If timeout occurs. * * @return void */ public function waitForBasicReturn($timeout = 0.0) {} /** * Return array of current consumers where key is consumer and value is AMQPQueue consumer is running on * * @return AMQPQueue[] */ public function getConsumers() {} } /** * stub class representing AMQPChannelException from pecl-amqp */ class AMQPChannelException extends AMQPException {} /** * stub class representing AMQPConnection from pecl-amqp */ class AMQPConnection { /** * Create an instance of AMQPConnection. * * Creates an AMQPConnection instance representing a connection to an AMQP * broker. A connection will not be established until * AMQPConnection::connect() is called. * * $credentials = array( * 'host' => amqp.host The host to connect too. Note: Max 1024 characters. * 'port' => amqp.port Port on the host. * 'vhost' => amqp.vhost The virtual host on the host. Note: Max 128 characters. * 'login' => amqp.login The login name to use. Note: Max 128 characters. * 'password' => amqp.password Password. Note: Max 128 characters. * 'read_timeout' => Timeout in for income activity. Note: 0 or greater seconds. May be fractional. * 'write_timeout' => Timeout in for outcome activity. Note: 0 or greater seconds. May be fractional. * 'connect_timeout' => Connection timeout. Note: 0 or greater seconds. May be fractional. * 'rpc_timeout' => RPC timeout. Note: 0 or greater seconds. May be fractional. * * Connection tuning options (see http://www.rabbitmq.com/amqp-0-9-1-reference.html#connection.tune for details): * 'channel_max' => Specifies highest channel number that the server permits. 0 means standard extension limit * (see PHP_AMQP_MAX_CHANNELS constant) * 'frame_max' => The largest frame size that the server proposes for the connection, including frame header * and end-byte. 0 means standard extension limit (depends on librabbimq default frame size limit) * 'heartbeat' => The delay, in seconds, of the connection heartbeat that the server wants. * 0 means the server does not want a heartbeat. Note, librabbitmq has limited heartbeat support, * which means heartbeats checked only during blocking calls. * * TLS support (see https://www.rabbitmq.com/ssl.html for details): * 'cacert' => Path to the CA cert file in PEM format.. * 'cert' => Path to the client certificate in PEM foramt. * 'key' => Path to the client key in PEM format. * 'verify' => Enable or disable peer verification. If peer verification is enabled then the common name in the * server certificate must match the server name. Peer verification is enabled by default. * * 'connection_name' => A user determined name for the connection * ) * * @param array $credentials Optional array of credential information for * connecting to the AMQP broker. */ public function __construct(array $credentials = []) {} /** * Check whether the connection to the AMQP broker is still valid. * * Cannot reliably detect dropped connections or unusual socket errors, as it does not actively * engage the socket. * * @return bool TRUE if connected, FALSE otherwise. */ public function isConnected() {} /** * Whether connection persistent. * * When no connection is established, it will always return FALSE. The same disclaimer as for * {@see AMQPConnection::isConnected()} applies. * * @return bool TRUE if persistently connected, FALSE otherwise. */ public function isPersistent() {} /** * Establish a transient connection with the AMQP broker. * * This method will initiate a connection with the AMQP broker. * * @throws AMQPConnectionException * @return void */ public function connect() {} /** * Closes the transient connection with the AMQP broker. * * This method will close an open connection with the AMQP broker. * * @throws AMQPConnectionException When attempting to disconnect a persistent connection * * @return void */ public function disconnect() {} /** * Close any open transient connections and initiate a new one with the AMQP broker. * * @return void */ public function reconnect() {} /** * Establish a persistent connection with the AMQP broker. * * This method will initiate a connection with the AMQP broker * or reuse an existing one if present. * * @throws AMQPConnectionException * @return void */ public function pconnect() {} /** * Closes a persistent connection with the AMQP broker. * * This method will close an open persistent connection with the AMQP * broker. * * @throws AMQPConnectionException When attempting to disconnect a transient connection * * @return void */ public function pdisconnect() {} /** * Close any open persistent connections and initiate a new one with the AMQP broker. * * @throws AMQPConnectionException * * @return void */ public function preconnect() {} /** * Get the configured host. * * @return string The configured hostname of the broker */ public function getHost() {} /** * Get the configured login. * * @return string The configured login as a string. */ public function getLogin() {} /** * Get the configured password. * * @return string The configured password as a string. */ public function getPassword() {} /** * Get the configured port. * * @return int The configured port as an integer. */ public function getPort() {} /** * Get the configured vhost. * * @return string The configured virtual host as a string. */ public function getVhost() {} /** * Set the hostname used to connect to the AMQP broker. * * @param string $host The hostname of the AMQP broker. * * @throws AMQPConnectionException If host is longer then 1024 characters. * * @return void */ public function setHost($host) {} /** * Set the login string used to connect to the AMQP broker. * * @param string $login The login string used to authenticate * with the AMQP broker. * * @throws AMQPConnectionException If login is longer then 32 characters. * * @return void */ public function setLogin($login) {} /** * Set the password string used to connect to the AMQP broker. * * @param string $password The password string used to authenticate * with the AMQP broker. * * @throws AMQPConnectionException If password is longer then 32characters. * * @return void */ public function setPassword($password) {} /** * Set the port used to connect to the AMQP broker. * * @param int $port The port used to connect to the AMQP broker. * * @throws AMQPConnectionException If port is longer not between * 1 and 65535. * * @return void */ public function setPort($port) {} /** * Sets the virtual host to which to connect on the AMQP broker. * * @param string $vhost The virtual host to use on the AMQP * broker. * * @throws AMQPConnectionException If host is longer then 32 characters. * * @return void */ public function setVhost($vhost) {} /** * Sets the interval of time to wait for income activity from AMQP broker * * @deprecated use AMQPConnection::setReadTimeout($timeout) instead * * @param float $timeout * * @throws AMQPConnectionException If timeout is less than 0. * * @return void */ #[Deprecated(replacement: "%class%->setReadTimout(%parameter0%)")] public function setTimeout($timeout) {} /** * Get the configured interval of time to wait for income activity * from AMQP broker * * @deprecated use AMQPConnection::getReadTimeout() instead * * @return float */ #[Deprecated(replacement: '%class%->getReadTimout(%parameter0%)')] public function getTimeout() {} /** * Sets the interval of time to wait for income activity from AMQP broker * * @param float $timeout * * @throws AMQPConnectionException If timeout is less than 0. * * @return void */ public function setReadTimeout($timeout) {} /** * Get the configured interval of time to wait for income activity * from AMQP broker * * @return float */ public function getReadTimeout() {} /** * Sets the interval of time to wait for outcome activity to AMQP broker * * @param float $timeout * * @throws AMQPConnectionException If timeout is less than 0. * * @return void */ public function setWriteTimeout($timeout) {} /** * Get the configured interval of time to wait for outcome activity * to AMQP broker * * @return float */ public function getWriteTimeout() {} /** * Get the configured timeout (in seconds) for connecting to the AMQP broker */ public function getConnectTimeout(): float {} /** * Sets the interval of time to wait for RPC activity to AMQP broker * * @param float $timeout * * @throws AMQPConnectionException If timeout is less than 0. * * @return void */ public function setRpcTimeout($timeout) {} /** * Get the configured interval of time to wait for RPC activity * to AMQP broker * * @return float */ public function getRpcTimeout() {} /** * Return last used channel id during current connection session. * * @return int */ public function getUsedChannels() {} /** * Get the maximum number of channels the connection can handle. * * When connection is connected, effective connection value returned, which is normally the same as original * correspondent value passed to constructor, otherwise original value passed to constructor returned. * * @return int */ public function getMaxChannels() {} /** * Get max supported frame size per connection in bytes. * * When connection is connected, effective connection value returned, which is normally the same as original * correspondent value passed to constructor, otherwise original value passed to constructor returned. * * @return int */ public function getMaxFrameSize() {} /** * Get number of seconds between heartbeats of the connection in seconds. * * When connection is connected, effective connection value returned, which is normally the same as original * correspondent value passed to constructor, otherwise original value passed to constructor returned. * * @return int */ public function getHeartbeatInterval() {} /** * Get path to the CA cert file in PEM format * * @return string|null */ public function getCACert() {} /** * Set path to the CA cert file in PEM format * * @param string|null $cacert * * @return void */ public function setCACert($cacert) {} /** * Get path to the client certificate in PEM format * * @return string|null */ public function getCert() {} /** * Set path to the client certificate in PEM format * * @param string|null $cert * * @return void */ public function setCert($cert) {} /** * Get path to the client key in PEM format * * @return string|null */ public function getKey() {} /** * Set path to the client key in PEM format * * @param string|null $key * * @return void */ public function setKey($key) {} /** * Get whether peer verification enabled or disabled * * @return bool */ public function getVerify() {} /** * Enable or disable peer verification * * @param bool $verify * * @return void */ public function setVerify($verify) {} /** * set authentication method * * @param int $saslMethod AMQP_SASL_METHOD_PLAIN | AMQP_SASL_METHOD_EXTERNAL * * @return void */ public function setSaslMethod($method) {} /** * Get authentication mechanism configuration * * @return int AMQP_SASL_METHOD_PLAIN | AMQP_SASL_METHOD_EXTERNAL */ public function getSaslMethod() {} public function setConnectionName(?string $connectionName): void {} public function getConnectionName(): ?string {} } /** * stub class representing AMQPConnectionException from pecl-amqp */ class AMQPConnectionException extends AMQPException {} /** * Interface representing AMQP values */ interface AMQPValue { public function toAmqpValue(): float|array|AMQPDecimal|bool|int|AMQPValue|string|AMQPTimestamp|null; } /** * stub class representing AMQPDecimal from pecl-amqp */ final /* readonly */ class AMQPDecimal implements AMQPValue { public const EXPONENT_MIN = 0; public const EXPONENT_MAX = 255; public const SIGNIFICAND_MIN = 0; public const SIGNIFICAND_MAX = 4294967295; /** * @param $exponent * @param $significand * * @throws AMQPExchangeValue */ public function __construct($exponent, $significand) {} /** @return int */ public function getExponent() {} /** @return int */ public function getSignificand() {} public function toAmqpValue(): float|array|AMQPDecimal|bool|int|AMQPValue|string|AMQPTimestamp|null {} } /** * stub class representing AMQPEnvelope from pecl-amqp */ class AMQPEnvelope extends AMQPBasicProperties { /** * Get the body of the message. * * @return string The contents of the message body. */ public function getBody() {} /** * Get the routing key of the message. * * @return string The message routing key. */ public function getRoutingKey() {} /** * Get the consumer tag of the message. * * @return string|null The consumer tag of the message. */ public function getConsumerTag() {} /** * Get the delivery tag of the message. * * @return int|null The delivery tag of the message. */ public function getDeliveryTag() {} /** * Get the exchange name on which the message was published. * * @return string|null The exchange name on which the message was published. */ public function getExchangeName() {} /** * Whether this is a redelivery of the message. * * Whether this is a redelivery of a message. If this message has been * delivered and AMQPEnvelope::nack() was called, the message will be put * back on the queue to be redelivered, at which point the message will * always return TRUE when this method is called. * * @return bool TRUE if this is a redelivery, FALSE otherwise. */ public function isRedelivery() {} /** * Get a specific message header. * * @param string $headerName Name of the header to get the value from. * * @return mixed The contents of the specified header or null if not set. */ public function getHeader($headerName) {} /** * Check whether specific message header exists. * * @param string $headerName Name of the header to check. * * @return bool */ public function hasHeader($headerName) {} } /** * stub class representing AMQPEnvelopeException from pecl-amqp */ class AMQPEnvelopeException extends AMQPException { public function getEnvelope(): AMQPEnvelope {} } /** * stub class representing AMQPException from pecl-amqp */ class AMQPException extends Exception {} /** * stub class representing AMQPExchange from pecl-amqp */ class AMQPExchange { /** * Create an instance of AMQPExchange. * * Returns a new instance of an AMQPExchange object, associated with the * given AMQPChannel object. * * @param AMQPChannel $channel A valid AMQPChannel object, connected * to a broker. * * @throws AMQPExchangeException When amqp_channel is not connected to * a broker. * @throws AMQPConnectionException If the connection to the broker was * lost. */ public function __construct(AMQPChannel $channel) {} /** * Bind to another exchange. * * Bind an exchange to another exchange using the specified routing key. * * @param string $exchangeName Name of the exchange to bind. * @param string|null $routingKey The routing key to use for binding. * @param array $arguments Additional binding arguments. * * @throws AMQPExchangeException On failure. * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function bind($exchangeName, $routingKey = null, array $arguments = []) {} /** * Remove binding to another exchange. * * Remove a routing key binding on an another exchange from the given exchange. * * @param string $exchangeName Name of the exchange to bind. * @param string|null $routingKey The routing key to use for binding. * @param array $arguments Additional binding arguments. * * @throws AMQPExchangeException On failure. * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function unbind($exchangeName, $routingKey = null, array $arguments = []) {} /** * Declare a new exchange on the broker. * * @throws AMQPExchangeException On failure. * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function declareExchange() {} /** * Declare a new exchange on the broker. * * @throws AMQPExchangeException On failure. * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function declare(): void {} /** * Delete the exchange from the broker. * * @param string|null $exchangeName Optional name of exchange to delete. * @param int|null $flags Optionally AMQP_IFUNUSED can be specified * to indicate the exchange should not be * deleted until no clients are connected to * it. * * @throws AMQPExchangeException On failure. * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function delete($exchangeName = null, $flags = null) {} /** * Get the argument associated with the given key. * Get the argument associated with the given key. * * @param string $argumentName The key to look up. * * @throws AMQPExchangeException If key does not exist * * @return bool|int|float|string|null */ public function getArgument($argumentName) {} /** * Check whether argument associated with the given key exists. * * @param string $argumentName The key to look up. * * @return bool */ public function hasArgument($argumentName) {} /** * Get all arguments set on the given exchange. * * @return array An array containing all of the set key/value pairs. */ public function getArguments() {} /** * Get all the flags currently set on the given exchange. * * @return int An integer bitmask of all the flags currently set on this * exchange object. */ public function getFlags() {} /** * Get the configured name. * * @return string|null The configured name as a string. */ public function getName() {} /** * Get the configured type. * * @return string|null The configured type as a string. */ public function getType() {} /** * Publish a message to an exchange. * * Publish a message to the exchange represented by the AMQPExchange object. * * @param string $message The message to publish. * @param string|null $routingKey The optional routing key to which to * publish to. * @param int|null $flags One or more of AMQP_MANDATORY and * AMQP_IMMEDIATE. * @param array $headers One of content_type, content_encoding, * message_id, user_id, app_id, delivery_mode, * priority, timestamp, expiration, type * or reply_to, headers. * * @throws AMQPExchangeException On failure. * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function publish( $message, $routingKey = null, $flags = null, array $headers = [] ) {} /** * Set the value for the given key. * * @param string $argumentName Name of the argument to set. * @param bool|int|float|string|null $argumentValue Value of the argument to set. * * @return void */ public function setArgument($argumentName, $argumentValue) {} /** * Set the value for the given key. * * @param string $argumentName Name of the argument to remove. */ public function removeArgument(string $argumentName): void {} /** * Set all arguments on the exchange. * * @param array $arguments An array of key/value pairs of arguments. * * @return void */ public function setArguments(array $arguments) {} /** * Set the flags on an exchange. * * @param int|null $flags A bitmask of flags. This call currently only * considers the following flags: * AMQP_DURABLE, AMQP_PASSIVE * (and AMQP_DURABLE, if librabbitmq version >= 0.5.3) * * @return void */ public function setFlags($flags) {} /** * Set the name of the exchange. * * @param string|null $exchangeName The name of the exchange to set as string. * * @return void */ public function setName($exchangeName) {} /** * Set the type of the exchange. * * Set the type of the exchange. This can be any of AMQP_EX_TYPE_DIRECT, * AMQP_EX_TYPE_FANOUT, AMQP_EX_TYPE_HEADERS or AMQP_EX_TYPE_TOPIC. * * @param string|null $exchangeType The type of exchange as a string. * * @return void */ public function setType($exchangeType) {} /** * Get the AMQPChannel object in use * * @return AMQPChannel */ public function getChannel() {} /** * Get the AMQPConnection object in use * * @return AMQPConnection */ public function getConnection() {} } /** * stub class representing AMQPExchangeException from pecl-amqp */ class AMQPExchangeException extends AMQPException {} /** * stub class representing AMQPQueue from pecl-amqp */ class AMQPQueue { /** * Create an instance of an AMQPQueue object. * * @param AMQPChannel $channel The amqp channel to use. * * @throws AMQPQueueException When amqp_channel is not connected to a * broker. * @throws AMQPConnectionException If the connection to the broker was lost. */ public function __construct(AMQPChannel $channel) {} /** * Acknowledge the receipt of a message. * * This method allows the acknowledgement of a message that is retrieved * without the AMQP_AUTOACK flag through AMQPQueue::get() or * AMQPQueue::consume() * * @param int $deliveryTag The message delivery tag of which to * acknowledge receipt. * @param int|null $flags The only valid flag that can be passed is * AMQP_MULTIPLE. * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function ack($deliveryTag, $flags = null) {} /** * Bind the given queue to a routing key on an exchange. * * @param string $exchangeName Name of the exchange to bind to. * @param string|null $routingKey Pattern or routing key to bind with. * @param array $arguments Additional binding arguments. * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function bind($exchangeName, $routingKey = null, array $arguments = []) {} /** * Cancel a queue that is already bound to an exchange and routing key. * * @param string $consumer_tag The consumer tag cancel. If no tag provided, * or it is empty string, the latest consumer * tag on this queue will be used and after * successful request it will set to null. * If it also empty, no `basic.cancel` * request will be sent. When consumer_tag give * and it equals to latest consumer_tag on queue, * it will be interpreted as latest consumer_tag usage. * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function cancel($consumer_tag = '') {} /** * Consume messages from a queue. * * Blocking function that will retrieve the next message from the queue as * it becomes available and will pass it off to the callback. * * @param callable|null $callback A callback function to which the * consumed message will be passed. The * function must accept at a minimum * one parameter, an AMQPEnvelope object, * and an optional second parameter * the AMQPQueue object from which callback * was invoked. The AMQPQueue::consume() will * not return the processing thread back to * the PHP script until the callback * function returns FALSE. * If the callback is omitted or null is passed, * then the messages delivered to this client will * be made available to the first real callback * registered. That allows one to have a single * callback consuming from multiple queues. * @param int|null $flags A bitmask of any of the flags: AMQP_AUTOACK, * AMQP_JUST_CONSUME. Note: when AMQP_JUST_CONSUME * flag used all other flags are ignored and * $consumerTag parameter has no sense. * AMQP_JUST_CONSUME flag prevent from sending * `basic.consume` request and just run $callback * if it provided. Calling method with empty $callback * and AMQP_JUST_CONSUME makes no sense. * @param string|null $consumerTag A string describing this consumer. Used * for canceling subscriptions with cancel(). * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * @throws AMQPEnvelopeException When no queue found for envelope. * @throws AMQPQueueException If timeout occurs or queue is not exists. * * @return void */ public function consume( callable $callback = null, $flags = null, $consumerTag = null ) {} /** * Declare a new queue on the broker. * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * @throws AMQPQueueException On failure. * * @return int the message count. */ public function declareQueue() {} /** * Declare a new queue on the broker. * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * @throws AMQPQueueException On failure. * * @return int the message count. */ public function declare(): int {} /** * Delete a queue from the broker. * * This includes its entire contents of unread or unacknowledged messages. * * @param int|null $flags Optionally AMQP_IFUNUSED can be specified * to indicate the queue should not be * deleted until no clients are connected to * it. * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return int The number of deleted messages. */ public function delete($flags = null) {} /** * Retrieve the next message from the queue. * * Retrieve the next available message from the queue. If no messages are * present in the queue, this function will return NULL immediately. This * is a non blocking alternative to the AMQPQueue::consume() method. * Currently, the only supported flag for the flags parameter is * AMQP_AUTOACK. If this flag is passed in, then the message returned will * automatically be marked as acknowledged by the broker as soon as the * frames are sent to the client. * * @param int|null $flags A bitmask of supported flags for the * method call. Currently, the only the * supported flag is AMQP_AUTOACK. If this * value is not provided, it will use the * value of ini-setting amqp.auto_ack. * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * @throws AMQPQueueException If queue is not exist. * * @return AMQPEnvelope|null */ public function get($flags = null) {} /** * Get all the flags currently set on the given queue. * * @return int An integer bitmask of all the flags currently set on this * exchange object. */ public function getFlags(): int {} /** * Get the configured name. * * @return string|null The configured name as a string. */ public function getName(): ?string {} /** * Mark a message as explicitly not acknowledged. * * Mark the message identified by delivery_tag as explicitly not * acknowledged. This method can only be called on messages that have not * yet been acknowledged, meaning that messages retrieved with by * AMQPQueue::consume() and AMQPQueue::get() and using the AMQP_AUTOACK * flag are not eligible. When called, the broker will immediately put the * message back onto the queue, instead of waiting until the connection is * closed. This method is only supported by the RabbitMQ broker. The * behavior of calling this method while connected to any other broker is * undefined. * * @param int $deliveryTag Delivery tag of last message to reject. * @param int|null $flags AMQP_REQUEUE to requeue the message(s), * AMQP_MULTIPLE to nack all previous * unacked messages as well. * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function nack($deliveryTag, $flags = null) {} /** * Mark one message as explicitly not acknowledged. * * Mark the message identified by delivery_tag as explicitly not * acknowledged. This method can only be called on messages that have not * yet been acknowledged, meaning that messages retrieved with by * AMQPQueue::consume() and AMQPQueue::get() and using the AMQP_AUTOACK * flag are not eligible. * * @param int $deliveryTag Delivery tag of the message to reject. * @param int|null $flags AMQP_REQUEUE to requeue the message(s). * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function reject($deliveryTag, $flags = null) {} /** * Recover unacknowledged messages delivered to the current consumer. * * Recover all the unacknowledged messages delivered to the current consumer. * If $requeue is true, the broker can redeliver the messages to different * consumers. If $requeue is FALSE, it can only redeliver it to the current * consumer. RabbitMQ does not implement $request = false. * This method exposes `basic.recover` from the AMQP spec. * * @param bool $requeue If TRUE, deliver to any consumer, if FALSE, deliver to the current consumer only * @throws AMQPConnectionException If the connection to the broker was lost. * @throws AMQPChannelException If the channel is not open. */ public function recover(bool $requeue = true): void {} /** * Purge the contents of a queue. * * Returns the number of purged messages * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return int */ public function purge() {} /** * Get the argument associated with the given key. * * @param string $argumentName The key to look up. * @throws AMQPQueueException If key does not exist * @return bool|int|float|string|null|array|AMQPValue|AMQPDecimal|AMQPTimestamp */ public function getArgument($argumentName) {} /** * Set a queue argument. * * @param string $argumentName The key to set. * @param bool|int|float|string|null|array|AMQPValue|AMQPDecimal|AMQPTimestamp $argumentValue The argument value to set. * * @return void */ public function setArgument(string $argumentName, $argumentValue) {} /** * Set a queue argument. * * @param string $argumentName The argument name to set. */ public function removeArgument(string $argumentName): void {} /** * Set all arguments on the given queue. * * All other argument settings will be wiped. * * @param array $arguments An array of name/value pairs of arguments. */ public function setArguments(array $arguments): void {} /** * Get all set arguments as an array of key/value pairs. * * @return array An array containing all the set key/value pairs. */ public function getArguments(): array {} /** * Check whether a queue has specific argument. * * @param string $argumentName The argument name to check. * * @return bool */ public function hasArgument(string $argumentName): bool {} /** * Set the flags on the queue. * * @param int|null $flags A bitmask of flags: * AMQP_DURABLE, AMQP_PASSIVE, * AMQP_EXCLUSIVE, AMQP_AUTODELETE. * * @return void */ public function setFlags($flags = null) {} /** * Set the queue name. * * @param string $name The name of the queue. * * @return void */ public function setName($name) {} /** * Remove a routing key binding on an exchange from the given queue. * * @param string $exchangeName The name of the exchange on which the * queue is bound. * @param string|null $routingKey The binding routing key used by the * queue. * @param array $arguments Additional binding arguments. * * @throws AMQPChannelException If the channel is not open. * @throws AMQPConnectionException If the connection to the broker was lost. * * @return void */ public function unbind($exchangeName, $routingKey = null, array $arguments = []) {} /** * Get the AMQPChannel object in use * * @return AMQPChannel */ public function getChannel() {} /** * Get the AMQPConnection object in use * * @return AMQPConnection */ public function getConnection() {} /** * Get latest consumer tag. If no consumer available or the latest on was canceled null will be returned. * * @return string|null */ public function getConsumerTag() {} } /** * stub class representing AMQPQueueException from pecl-amqp */ class AMQPQueueException extends AMQPException {} class AMQPValueException extends AMQPException {} /** * stub class representing AMQPTimestamp from pecl-amqp */ final /* readonly */ class AMQPTimestamp implements AMQPValue { public const MIN = 0.0; public const MAX = 18446744073709551616; /** * @throws AMQPValueException */ public function __construct(float $timestamp) {} public function __toString(): string {} public function getTimestamp(): float {} public function toAmqpValue(): float|array|AMQPDecimal|bool|int|AMQPValue|string|AMQPTimestamp|null {} } /** * stub class representing AMQPExchangeValue from pecl-amqp */ class AMQPExchangeValue extends AMQPException {}