Skip to content

Latest commit

 

History

History
126 lines (104 loc) · 7.42 KB

clients.rst

File metadata and controls

126 lines (104 loc) · 7.42 KB

Clients & Adapters

There are two types of libraries you can use to send HTTP messages; clients and adapters. A client implements the HttpClient and/or the HttpAsyncClient interfaces directly. A client adapter is a class implementing the interface and forwarding the calls to an HTTP client not implementing the interface. (See Adapter pattern on Wikipedia).

Note

All clients and adapters comply with Liskov substitution principle which means that you can easily change one for another without any side effects.

.. toctree::
   :hidden:

   clients/curl-client
   clients/socket-client
   clients/mock-client
   clients/artax-adapter
   clients/buzz-adapter
   clients/cakephp-adapter
   clients/guzzle5-adapter
   clients/guzzle6-adapter
   clients/react-adapter
   clients/zend-adapter

Name Type Links Stats
php-http/curl-client Client :doc:`Docs </clients/curl-client>`, Repo Latest Version Total Downloads
php-http/socket-client Client :doc:`Docs </clients/socket-client>`, Repo Latest Version Total Downloads
php-http/mock-client Client :doc:`Docs </clients/mock-client>`, Repo Latest Version Total Downloads
php-http/artax-adapter Adapter :doc:`Docs </clients/artax-adapter>`, Repo Latest Version Total Downloads
php-http/buzz-adapter Adapter :doc:`Docs </clients/buzz-adapter>`, Repo Latest Version Total Downloads
php-http/cakephp-adapter Adapter :doc:`Docs </clients/cakephp-adapter>`, Repo Latest Version Total Downloads
php-http/guzzle5-adapter Adapter :doc:`Docs </clients/guzzle5-adapter>`, Repo Latest Version Total Downloads
php-http/guzzle6-adapter Adapter :doc:`Docs </clients/guzzle6-adapter>`, Repo Latest Version Total Downloads
php-http/react-adapter Adapter :doc:`Docs </clients/react-adapter>`, Repo Latest Version Total Downloads
php-http/zend-adapter Adapter :doc:`Docs </clients/zend-adapter>`, Repo Latest Version Total Downloads

Composer Virtual Packages

Virtual packages are a way to specify the dependency on an implementation of an interface-only repository without forcing a specific implementation. For HTTPlug, the virtual packages are called php-http/client-implementation and php-http/async-client-implementation.

There is no library registered with those names. However, all client implementations (including client adapters) for HTTPlug use the provide section to tell composer that they do provide the client-implementation.