to send custom headers, you need send it as associative array under attribute 'headers'
(PECL amqp >= Unknown)
AMQPExchange::publish — Publish a message to an exchange.
$attributes= array() ]] )
Publish a message to the exchange represented by the AMQPExchange object.
The message to publish.
The routing key to which to publish.
One or more of
Supported indexes key Description Default value content_type text/plain content_encoding NULL message_id NULL user_id NULL app_id NULL delivery_mode NULL priority NULL timestamp NULL expiration NULL type NULL reply_to NULL
TRUE em caso de sucesso ou
FALSE em caso de falha.
Throws an AMQPExchangeException on failure.
Throws AMQPChannelException if the channel is not open.
Throws AMQPConnectionException if the connection to the broker was lost.
Any unused attributes will be assigned as custom headers attached to the outgoing message's headers collection.
This isn't exactly clear from the documentation above, but I've checked the C source, and that's how you set custom headers.