An update in regards to comments from 'yougot' and 'Mike'.
I have just submitted a pull request that should fix the 'passphrase' issue where the internal callback wasn't being called thereby triggering pinentry.
The pull request is at: https://github.com/php-gnupg/php-gnupg/pull/15
This fix will also work for the current 1.4.0 release: https://github.com/TerraTech/php-gnupg/tree/fix_adddecryptkey_passphrase-1.4.0
Hope that helps.