лучший способ исправить проверку мыльных клиентов в phpstorm

Я использую PHPStorm v3 и имею некоторый код, который подключается к определенной службе SOAP. (через простой PHP SoapClient) Никаких проблем. Но инспектор PHPStorm не может найти доступные методы WSDL и, следовательно, не может распознать используемые методы:

$this->soap = new SoapClient('somewsdl url');
$issues = $this->soap->getIssuesFromJqlSearch($this->auth,
    'ticketId = '.$ticket->getId().'
    AND impId ~ "'.$currentImplementation->getIdentifier().'"', 1);

Все работает, но метод getIssuesFromJqlSearch, который предоставляется внешним WSDL, выделен с упоминанием неопределенного метода... Как я могу "сказать" PHPStorm, что следует/можно использовать (или объяснить, как анализировать WSDL?)


person Gekkie    schedule 07.02.2012    source источник


Ответы (2)


Это не идеально, так как не парсит WSDL и вам придется делать это вручную, но отлично работает после первоначальной настройки.

Создайте класс, расширяющий собственный SoapClient, и используйте аннотации для добавления виртуальных методов:

/**
 * @method mixed getIssuesFromJqlSearch
 **/
class VendorSpecific extends \SoapClient {}

Либо вы можете сами сгенерировать такой клиент, реализовав все методы как прокси для self::__soapCall(). Для справки см. мой генератор SoapClient. Положительным моментом является то, что он может анализировать WSDL, хотя и не идеально.

person Maciej Łebkowski    schedule 08.11.2013
comment
Спасибо, что бы посмотреть на работу. Простое создание заглушки вручную действительно «обманывает» автозаполнение и тому подобное. Жаль, что PHPStorm не может прочитать WSDL и сгенерировать заглушку оттуда. ="nofollow noreferrer">youtrack.jetbrains.com/issue/WI-3616) - person Gekkie; 12.11.2013
comment
Вы можете создавать классы PHP из WSDL с помощью таких проектов: wsdl2phpgenerator.github.io/wsdl2phpgenerator — работает хорошо для меня. Он находится в активной разработке. - person Jens Kohl; 15.09.2014

Вы можете подавить проверку этого оператора в меню Alt+Enter, right arrow:

подавить

person CrazyCoder    schedule 07.02.2012
comment
Но это не то, что я хочу... Я хотел бы видеть это наоборот: определить WSDL, понятный PS, и, таким образом, автоматически исправлять тип0. - person Gekkie; 08.02.2012