additional attribute to the publish method is
(PECL amqp >= Unknown)
AMQPExchange::publish — Publish a message to an exchange.
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 AMQP_MANDATORY and AMQP_MANDATORY.
Returns TRUE on success or FALSE on failure.
Throws an AMQPExchangeException on failure.
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.