Устали создавать дрянные реализации SOAP? Этот пакет призван помочь вам решить некоторые распространенные проблемы интеграции SOAP в PHP. Его цель — снова сделать интеграцию с SOAP увлекательной!
Хотите больше информации о будущем этого проекта? Ознакомьтесь со списком следующих крупных проектов, над которыми мы будем работать.
Вы можете выбрать, какой HTTP-клиент вы хотите использовать. Для установки этого пакета ожидается наличие некоторых реализаций PSR:
psr/cache-implementation
такая как symfony/cache
или cache/*-adapter
psr/http-message-implementation
например nyholm/psr7
или guzzlehttp/psr7
psr/http-factory-implementation
например nyholm/psr7
или guzzlehttp/psr7
psr/http-client-implementation
например symfony/http-client
или guzzlehttp/guzzle
Пример:
$ composer require symfony/http-client nyholm/psr7
$ composer require phpro/soap-client
Поскольку жизнь слишком коротка, чтобы читать документацию, мы добавили мастер создания шаблонов, который позволит вам мгновенно связаться с вашим SOAP-сервером! Все, что вам нужно сделать, это:
./vendor/bin/soap-client wizard
Вы можете настроить сгенерированный код на основе страниц ручной установки в следующей главе.
Это реализация клиента поверх php-soap. Для более сложной настройки вы можете проверить документацию внутри пакетов php-soap.
Rules
генерацииAssemblers
По умолчанию SoapClient работает с сочетанием массивов, stdClass и других скалярных типов. Это не очень хорошая практика в современном мире ООП, потому что:
Чтобы решить вышеуказанные проблемы, этот пакет заставит вас использовать объекты-значения для запросов и ответов. Мы знаем, что поддержание этих объектов-ценностей может оказаться непростой задачей. Не беспокойся! Доступны некоторые инструменты командной строки, которые помогут вам создать хорошую базу для начала. Поскольку SoapClient потребуется карта классов WSDL для классов PHP, также доступен генератор карт классов. Это наверняка сэкономит вам много времени! Добавляя преобразователи типов SOAP, можно преобразовывать значения определенного типа SOAP из/в тип PHP. В комплект поставки входят некоторые базовые преобразователи даты и времени. Кроме того, очень легко создавать своих собственных трансформеров.
Другая проблема заключается в том, что встроенный SoapClient работает со множеством магических методов. Эти волшебные методы сложно отлаживать, поэтому автодополнение кода не происходит. И SOAP, и методы реализации находятся в одном и том же объекте.
Этот пакет заставит вас включить SoapClient в ваш собственный клиент. Вы можете предоставлять только те методы, которые вам нужны. Разработчику всегда будет понятно, что у вас в клиенте, как он работает и что возвращает. Мы даже предоставили вам базовый клиент для использования с некоторыми распространенными методами отладки, аутентификации и системы событий.
Во многих интеграциях SOAP журналирование, кэширование и вызовы Soap выполняются одним и тем же методом. Это делает ваш код трудным для чтения и зависимым от других классов/пакетов.
Создание отличного OO SOAP-клиента означает, что вам придется написать много кода. Это может быть утомительная задача, которую можно автоматизировать. Вот почему мы добавили инструменты для автоматического создания объектов SOAP из схемы XSD внутри WSDL. Можно даже указать свои собственные правила генерации кода и ассемблеры кода или использовать один из наших многочисленных встроенных классов.
Важно поддерживать чистоту вашего кода. Поэтому мы добавили прослушиватель событий в ваш клиент Soap. Вы можете подключиться к каждому важному этапу потока SOAP. Таким образом, можно добавить ведение журнала, проверку и обработку ошибок с помощью подписчиков событий. Довольно круто, правда?!
Реализация расширений SOAP — настоящая заноза в заднице. Это вынуждает вас перезаписать основные методы встроенного клиента SOAP. Если вам когда-либо приходилось реализовывать WSA или WSSE в SOAP, вы знаете, что в ядре что-то не так. Поэтому мы упростили вам расширение нашего клиента SOAP. Вы можете указать, какой обработчик передачи данных, например Guzzle, вы хотите использовать. В зависимости от выбранного обработчика вы можете легко добавить поддержку расширений SOAP или расширенную аутентификацию через промежуточное программное обеспечение HTTP.
Разбираться с ext-мылом под силу не всем разработчикам. Есть несколько неприятных особенностей, о которых вам нужно знать. Поэтому мы предоставили вам возможность использовать любой драйвер, который вы хотите использовать. По умолчанию мы по-прежнему будем поставлять драйвер ext-soap, но он будет полностью добровольным. Вы можете использовать любую пользовательскую реализацию SoapClient, если обернете ее в наши собственные интерфейсы драйверов.
Тестировать веб-сервисы сложно! Этот пакет предоставляет несколько различных способов тестирования службы SOAP. Поскольку транспорт основан на HTTP, вы можете использовать реализацию php-vcr
. Если вы не хотите выполнять настоящие HTTP-вызовы, вы также можете использовать собственный Transport
или Caller
в своих тестовых примерах. Тестирование вашего SOAP-клиента пройдет очень быстро и без каких-либо ошибок на сторонней стороне интеграции.
И последнее, но не менее важное: мы хотим облегчить вам настройку SoapClient. Вот почему мы включили сгенерированную ClientFactory, на которой вы можете настроить свой собственный Клиент. Вам нужны другие настройки во время разработки и производства? Без проблем! Расслабьтесь и позвольте фабрике выполнить инициализацию вашего клиента.