Download the PHP package dcarbone/simple-consul-php without Composer
On this page you can find all versions of the php package dcarbone/simple-consul-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dcarbone/simple-consul-php
More information about dcarbone/simple-consul-php
Files in dcarbone/simple-consul-php
Package simple-consul-php
Short Description PHP client for the Consul HTTP API
License Apache-2.0
Homepage https://github.com/dcarbone/php-consul-api
Informations about the package simple-consul-php
php-consul-api
PHP client for the Consul HTTP API
This library is loosely based upon the official GO client.
PHP Compatibility
v3.xrequires PHP 8.2+.
Version Compatibility
| PHPConsulAPI Version | Consul Version |
|---|---|
| 0.3.x | 0.6.4 |
| 0.6.x | 0.7-0.8 |
| v1.x | 0.9-current |
| v2.x | 0.9-current |
| v3.x | 0.9-current |
| dev-main | current |
Newer versions of the api lib will probably work in a limited capacity with older versions of Consul, but no guarantee is made and backwards compatibility issues will not be addressed.
V3 Breaking Changes
There are a couple breaking changes between v2 and v3:
- The
FakeMapclass has been removed. - The
FakeSliceclass has been removed. - The
ReadableDurationclass has been removed. - All models now have parameterized constructors.
- The preferred construction style in v3 is constructor named parameters.
- Legacy construction via associative arrays (
new Model(data: [...])) is deprecated and will be removed in v4.
- All of that
Transcodingnonsense has been removed. - The root
Configclass may no longer be constructed with a map. You must use constructor parameters. - Map-like fields are represented in PHP as associative arrays (for example,
array<string,mixed>); some JSON object inputs may still be accepted as\stdClassat setter boundaries.
Composer
This lib is designed to be used with Composer
Require Entry:
Configuration
First, construct a Config. This class is modeled quite closely after the Config Struct present in the Consul API Subpackage.
Default Configuration
If you have defined some of the Consul Environment Variables on your hosts then it would probably be easiest to simply execute the following:
Advanced Configuration
You may alternatively define values yourself:
Configuration Note:
By default, this client will attempt to locate a series of environment variables to describe much of the above configuration properties. See here for a list of the env var names.
For more advanced client configuration, such as proxy configuration, you must construct your own GuzzleHttp client prior to constructing a PHPConsulAPI Config object.
As an example:
When constructing your client, if you are using the GuzzleHttp\Client object directly or derivative thereof, you may
pass any option listed in the Guzzle Request Options.
Consul
Next, construct a Consul object:
NOTE: If you do not create your own config object, Config::newDefaultConfig() and attempt to locate a suitable HTTP Client.
Once constructed, you interact with each Consul API via it's corresponding Client class:
...as an example.
Method Naming Note
Unlike the Go SDK, this client generally uses a single base method with an optional $opts argument instead of duplicated *Opts method variants.
Model Construction (v3)
Use named constructor parameters for normal model creation.
Associative-array construction through $data remains available for legacy code paths but is deprecated and scheduled for removal in v4.
Current Clients
- ACL
- Agent
- Catalog
- ConfigEntry
- Coordinate
- Debug
- Event
- Health
- KV
- Operator
- Peering
- PreparedQuery
- Session
- Status
- Txn
Tests
The testing suite is still in it's infancy, however it is being tested directly against an actual Consul agent. They will be back-filled as time allows. Future plans are to set up a simple cluster to provide a more real-world testing scenario.
All versions of simple-consul-php with dependencies
ext-json Version *
dcarbone/gotime Version ^v1.0.1
dcarbone/gohttp Version ^v1.0.0
guzzlehttp/guzzle Version ^7.4
guzzlehttp/psr7 Version ^2.4