J'ai Zend_Soap_Server. Cela devrait être testé. Un problème - les tests unitaires et les modes de développement devraient fonctionner avec différentes bases de données. Il peut se faire via .htaccess:Est-ce que Zend_Soap_Client peut définir un user-agent personnalisé?
SetEnvIfNoCase User-Agent (.*) APPLICATION_ENV=development
SetEnvIfNoCase User-Agent testing APPLICATION_ENV=testing
Il fonctionnerait très bien pour moi, j'utilise Zend_Soap_Client tout comme pour le mode de développement/production, et ajoutez paramètre supplémentaire pour les tests. Il n'y a pas de changements spéciaux dans le code source pour tester le support. La question - je ne peux pas définir agent utilisateur personnalisé pour (Zend_Soap_Client Il semble que ce paramètre est pas pris en charge ou non documenté j'ai essayé de faire la même chose par l'intermédiaire mod_rewrite et en ajoutant
new Zend_Soap_Client('...?wsdl&testing');
.
mais il faut changer Zend_Soap_Server pour supporter testing Query_String, sinon les actions soap ne sont pas reflétées avec 'testing' en dehors de wsdl, ce qui n'est pas bon à mon avis
Je suis d'accord c'est un peu plus lié aux tests d'acceptation, pas unité (j'ai des tests pour des classes telles que $server->setClass('classWS')
), mais de toute façon, j'en ai besoin indépendamment de la terminologie
Alors, ce qui fonctionne très bien pour moi est quelque chose comme:
new Zend_Soap_Client($wsdl, array('useragent' => 'testing'));
dans les tests.
Merci pour votre réponse! Malheureusement, j'ai $ _SERVER ['HTTP_USER_AGENT'] => "PHP-SOAP/5.2.6-3ubuntu4.2" même si user_agent est défini via stream_context_create (j'ai essayé vos deux cas). Je suppose, c'est parce que: header string En-têtes supplémentaires à envoyer lors de la demande. Les valeurs de cette option remplacent les autres valeurs (telles que User-agent :, Host: et Authentication :). Peut être Zend ajoute l'option d'en-tête, mais je ne suis pas sûr – Alexey
Bonjour Alexey, j'ai ajouté une autre option que vous pouvez essayer. Il semble que l'utilisateur-agent transmis via un contexte de flux soit surchargé par le 'SoapClient' lui-même. –
Merci encore! J'ai réalisé que l'option ['http'] ['user_agent'] n'a pas d'impact sur le php SoapClient natif (donc, Zend_Soap_Client n'est pas une raison en soi). Je ne suis pas sûr est-ce que le comportement souhaité ou non, mais je pense qu'il est logique de simplement signaler à l'équipe de Zend et d'activer l'option de construction 'user_agent' Zend_Soap_Client (parce que cela fonctionnerait bien - j'ai vérifié). Quoi qu'il en soit, merci pour votre solution - ça marche même si ça ne semble pas si joli!Mon – Alexey