RPC adapters for Horde's API system. Modern implementations share a
dispatch layer (ApiProviderInterface, MethodInvokerInterface) across
protocols — write a provider once, serve it over JSON-RPC, MCP, and SOAP.
| Modern | src/JsonRpc/ — PSR-7/15/18, JSON-RPC 1.1 and 2.0 |
| Legacy | lib/Horde/Rpc/Jsonrpc.php |
| Docs | doc/JSONRPC-USAGE.md |
| Modern | src/Mcp/ — MCP spec, Streamable HTTP transport |
| Docs | doc/MCP-USAGE.md |
| Modern | src/Soap/ — PSR-15, ext-soap (optional) in WSDL-less mode |
| Legacy | lib/Horde/Rpc/Soap.php |
| Docs | doc/SOAP-USAGE.md |
| Legacy | lib/Horde/Rpc/Xmlrpc.php — requires ext-xmlrpc, will probably not work in most modern PHP installations XML-RPC spec |
These delegate to other Horde packages:
- ActiveSync —
lib/Horde/Rpc/ActiveSync.php→horde/activesync - WebDAV / CalDAV / CardDAV —
lib/Horde/Rpc/Webdav.php→horde/dav - SyncML —
lib/Horde/Rpc/Syncml.php→horde/syncml(deprecated) - PHPGroupware XML-RPC —
lib/Horde/Rpc/Phpgw.php(deprecated)
JsonRpcHandler ──┐
McpServer ───────┤── ApiProviderInterface / MethodInvokerInterface
SoapHandler ─────┘
CallableMapProvider - a generic map of callables to API names
MathApiProvider - an educational example API provider
HordeRegistryApiProvider - Integrates the Horde Registry Inter-App API
All modern handlers implement both RequestHandlerInterface and
MiddlewareInterface for flexible middleware stacking.