Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Php Xmlrpc Client

Php Xmlrpc Client Laravel Package

ang3/php-xmlrpc-client

Lightweight PHP XML-RPC client inspired by Ripcord. Create a client with the server URL and call remote methods with optional args. Requires the php-xmlrpc extension. Throws transport and remote exceptions for failed requests or server errors.

View on GitHub
Deep Wiki
Context7

PHP XML-RPC client

Frequently asked questions about Php Xmlrpc Client
How do I integrate this XML-RPC client into a Laravel application?
Register the client as a Laravel service binding using PHP 8.0’s constructor property promotion. For example, bind it in your `AppServiceProvider` with `$this->app->bind(XmlRpcClient::class, fn($app) => new Client($app['config']['xmlrpc.endpoint']));`. Then inject the client into your services via constructor dependency injection.
Does this package support Laravel’s HTTP client middleware or logging?
No, this package doesn’t integrate directly with Laravel’s HTTP client. However, you can combine it with Laravel’s HTTP client for unified logging or middleware by wrapping the client’s transport layer. Alternatively, use Symfony’s HTTP client for retries and timeouts alongside this package.
What Laravel versions and PHP versions are supported?
This package requires PHP 8.0+ and works with Laravel 8.x, 9.x, and 10.x. The latest release (v1.0.3) includes PHP 8.0 compatibility, including named arguments and strict typing, which aligns well with modern Laravel deployments. Ensure your server also supports PHP 8.0+.
How do I handle XML-RPC errors in Laravel exceptions?
The package throws `TransportException` for transport failures and `RemoteException` for server errors. Wrap these in a custom service to translate them into Laravel’s exception hierarchy (e.g., `HttpException` or `RuntimeException`). Example: `catch (RemoteException $e) { throw new HttpException(500, $e->getFaultString()); }`.
Can I mock XML-RPC responses for testing in Laravel?
Yes, use PHPUnit’s mocking capabilities to create a mock `Client` instance or a custom transport layer. For end-to-end testing, consider using a mock XML-RPC server like `php-xmlrpc-server` or a local instance of the legacy system you’re integrating with. Laravel’s HTTP testing tools won’t apply here, so manual mocking is required.
What are the risks of using XML-RPC in a Laravel application?
XML-RPC is outdated and lacks modern features like REST’s statelessness or gRPC’s performance. Risks include poor performance, lack of tooling, and potential security concerns (e.g., no built-in CSRF protection). Use this package only for legacy integrations with a clear migration plan to REST or GraphQL.
How do I handle complex XML-RPC responses (e.g., nested structs, base64 data)?
The package handles basic serialization/deserialization, but complex responses (e.g., nested structs or binary data) may require custom unmarshalling. Use Laravel’s Data Transfer Objects (DTOs) or manually process the response array. For base64 data, decode it in your service layer before returning to Laravel.
Is this package actively maintained? Should I fork it?
The package is no longer actively maintained (last release in 2023). If you need long-term stability, fork the repository and maintain your own version. Alternatively, create a wrapper service to isolate changes and reduce dependency risks. Check for open issues or pull requests before forking.
Can I use this client with Laravel’s queue system for async XML-RPC calls?
Yes, you can dispatch XML-RPC calls as Laravel jobs. Create a job class that uses the client, then dispatch it to a queue. Example: `XmlRpcJob::dispatch($method, $args)->onQueue('xmlrpc');`. Ensure your queue worker handles exceptions gracefully, as XML-RPC failures will throw `RequestException`.
What alternatives exist for XML-RPC in Laravel?
For modern APIs, consider REST (Laravel’s HTTP client), GraphQL (using packages like `webonyx/graphql-php`), or gRPC (via `php-grpc`). If you must use XML-RPC, alternatives include the original `DarkaOnLine/Ripcord` (though less maintained) or Symfony’s `HttpClient` with a custom XML-RPC encoder/decoder.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels