Download the PHP package wexample/symfony-remote without Composer

On this page you can find all versions of the php package wexample/symfony-remote. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package symfony-remote

symfony-remote

Version: 2.0.0

A php-api client from configuration

Each entry gives:

The class must keep the constructor of php-api's Client: base URL, API key, Guzzle client, default headers, ClientOptions. A client whose constructor differs is built by the application and declared as a remote the other way, below.

options are php-api's ClientOptions in seconds; retries apply to idempotent methods only. rate_limit takes the options of a framework rate limiter and holds each request until a token is free, across every worker and web request of the app.

Any other remote

A service implementing RemoteInterface is registered through autoconfiguration:

A check may throw instead of returning down(): the registry reports the exception message. It also measures the latency, so a remote only says whether it answers.

Checking

The command fails when a remote is Down. Unconfigured does not fail it: missing credentials are a setup matter, not an outage. In code, RemoteRegistry::checkAll() and check($key) return the same RemoteStatus objects.

Table of Contents

Architecture

The bundle is the Symfony integration of wexample/php-remote, which holds everything that does not need a framework: RemoteInterface, RemoteStatus, RemoteState, RemoteRegistry, ClientDefinition, ApiClientFactory, ApiClientRemote and the rate-limit middleware. What lives here, under Wexample\SymfonyRemote\ (PSR-4 on src/), is the wiring: DependencyInjection/ the configuration and the extension, Class/ the rate limiter adapter, Command/ the console entry point. It also depends on symfony/rate-limiter for shared quotas.

Remotes and the registry

src/DependencyInjection/WexampleSymfonyRemoteExtension.php registers php-remote's RemoteInterface for autoconfiguration under TAG_REMOTE, so implementing it is enough, and defines php-remote's RemoteRegistry with the tagged services as its iterable. The registry itself — indexing by key, timing, turning a Throwable into Down — is php-remote's.

Clients from configuration

src/DependencyInjection/Configuration.php declares clients.<key>. Header names keep their dashes (normalizeKeys(false)): Symfony would otherwise turn X-Api-Key into X_Api_Key. For each entry, the extension registers three things:

  1. a ClientDefinition, the entry with its environment placeholders — resolved when the container builds it — and its options as php-api's ClientOptions. A declared api_key is a required one;
  2. the client service wexample_symfony_remote.client.<key>, built by php-remote's ApiClientFactory (a service, so the tests can give it a mock handler stack). The class is aliased to the service when a single entry uses it;
  3. an ApiClientRemote under the same key, tagged as a remote.

Shared quotas

prepend() turns each rate_limit into a framework rate limiter named wexample_remote_<key>, with lock_factory: auto so that symfony/lock stays optional. Storage, policies and locking are the framework's own. The client service receives a src/Class/SymfonyRateLimiter.php, php-remote's RateLimiterInterface over the limiter created for the client's key: acquire() consumes a token, waiting for the window whenever it is refused. It consumes rather than reserves, since the sliding window policy cannot reserve.

php-api's own rate_limit_delay spaces the requests of one client instance, which is one PHP process; rate_limit counts across all of them.

The command

src/Command/StatusCommand.php extends AbstractBundleCommand, which names it remote:status from the bundle and the class. It prints a table or JSON and returns FAILURE as soon as one status is Down.

Tests

Integration tests only: the registry, the clients and the middleware are unit-tested in php-remote. tests/Fixtures/App/AppKernel.php boots the bundle on symfony-testing's fixture kernel. Its configuration declares three clients — one complete, one missing its URL, one with a quota — and replaces the Guzzle handlers of ApiClientFactory by a shared MockHandler, so every client answers from a queue the tests fill.

Integration in the Suite

This package is part of the Wexample Suite — a collection of high-quality, modular tools designed to work seamlessly together across multiple languages and environments.

Related Packages

The suite includes packages for configuration management, file handling, prompts, and more. Each package can be used independently or as part of the integrated suite.

Visit the Wexample Suite documentation for the complete package ecosystem.

Dependencies

Versioning & Compatibility Policy

Wexample packages follow Semantic Versioning (SemVer):

We maintain backward compatibility within major versions and provide clear migration guides for breaking changes.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Free to use in both personal and commercial projects.

About us

Wexample stands as a cornerstone of the digital ecosystem — a collective of seasoned engineers, researchers, and creators driven by a relentless pursuit of technological excellence. More than a media platform, it has grown into a vibrant community where innovation meets craftsmanship, and where every line of code reflects a commitment to clarity, durability, and shared intelligence.

This packages suite embodies this spirit. Trusted by professionals and enthusiasts alike, it delivers a consistent, high-quality foundation for modern development — open, elegant, and battle-tested. Its reputation is built on years of collaboration, refinement, and rigorous attention to detail, making it a natural choice for those who demand both robustness and beauty in their tools.

Wexample cultivates a culture of mastery. Each package, each contribution carries the mark of a community that values precision, ethics, and innovation — a community proud to shape the future of digital craftsmanship.

Migration Notes

When upgrading between major versions, refer to the migration guides in the documentation.

Breaking changes are clearly documented with upgrade paths and examples.


All versions of symfony-remote with dependencies

PHP Build Version
Package Version
Requires php Version >=8.5
symfony/rate-limiter Version ^7.4
wexample/php-api Version >=5.0.0
wexample/php-remote Version >=1.0.2
wexample/symfony-helpers Version >=12.0.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package wexample/symfony-remote contains the following files

Loading the files please wait ...