If the bind() operation is blocking for you, make sure you're performing it on a fresh connection - use reconnect() or so. This took me hours to figure out.
(PECL amqp >= Unknown)
AMQPQueue::bind — Bind the given queue to a routing key on an exchange.
The bind method will bind the given queue to the specified routing key on the given exchange.
This function is currently not documented; only its argument list is available.
The exchange name on which to bind.
The routing key to which to bind.
Throws AMQPChannelException if the channel is not open.
Throws AMQPConnectionException if the connection to the broker was lost.
TRUE on success or
FALSE on failure.