Download the PHP package andydefer/php-client without Composer

On this page you can find all versions of the php package andydefer/php-client. 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 php-client

PHP HTTP Client - Documentation Complète

📖 Introduction

PHP HTTP Client est une bibliothèque PHP moderne qui transforme les appels HTTP en objets métier typés, immutables et sécurisés.

Elle repose sur GuzzleHttp mais ajoute une couche d'abstraction qui élimine les problèmes de parsing manuel, de données non typées et de configuration dispersée.


🎯 Pourquoi ce package existe

Le problème : Les appels HTTP bruts sont fragiles

La solution : Des objets métier typés


🎯 Problèmes résolus

Problème Solution PHP HTTP Client
Données non typées Objets PHP typés avec PHPDoc et readonly
Parsing manuel Hydratation automatique via from()
Configuration dispersée Value Objects centralisés (HeadersVO, OptionsVO)
Pas de standardisation Architecture cohérente Request/Response
Données mutables Immutabilité totale (readonly)
Pas de validation Validation automatique des URLs, JSON, types

🚀 Installation

Prérequis


🏗️ Architecture

Les 4 piliers

Pilier Rôle
Request Encapsule la requête HTTP (méthode, URL, corps, headers, options)
Response Encapsule la réponse HTTP (status, corps, headers)
Value Objects Objets immutables pour headers, options, URL, corps
ClientService Envoie la requête et hydrate la réponse

📦 Composants principaux

1. Request - La requête HTTP

Une Request encapsule toutes les informations d'une requête HTTP. Elle est immutable dans sa structure (méthode, URL, corps) mais permet de configurer les headers et options.

Points clés :


2. Response - La réponse HTTP

Une Response encapsule la réponse HTTP et fournit des méthodes métier pour y accéder.

Points clés :


3. ClientService - Le client HTTP

Le ClientService est le point d'entrée. Il envoie les requêtes et retourne des réponses typées.

Méthodes disponibles :


🔧 Value Objects

HeadersVO - Gestion des en-têtes

Les en-têtes HTTP sont gérés via un Value Object immutable.

Méthodes disponibles :

Catégorie Méthodes
Généraux setHost(), setUserAgent(), setAccept(), setAcceptEncoding()
Authentification setAuthorization(), setBasicAuth(), setApiKey(), setCookie()
Contenu setContentType(), setContentLength(), setContentEncoding()
Cache setCacheControl(), setIfModifiedSince(), setIfNoneMatch()
Sécurité setXsrfToken(), setStrictTransportSecurity()
Personnalisés setCustom(), setXRequestId(), setXCorrelationId()

OptionsVO - Options de configuration

Les options de transfert sont centralisées dans un Value Object.


RequestBodyVO - Corps de requête

Le corps de requête est typé et peut être en JSON ou en formulaire.


ResponseBodyVO - Corps de réponse

Le corps de réponse est automatiquement hydraté en objet structuré.


UrlVO - URL validée

L'URL est automatiquement validée et découpée en parties.

UrlQueryVO - Paramètres de la query


📝 Enums disponibles

Enum Description Valeurs
HttpMethod Méthodes HTTP GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
HttpStatusCode Codes HTTP 100-599 avec messages standards
ContentType Types de contenu JSON, JSON_UTF8, PROBLEM_JSON, FORM
ContentEncoding Encodages de contenu GZIP, DEFLATE, BR, ZSTD, IDENTITY
HeaderType Types d'en-têtes HOST, USER_AGENT, ACCEPT, AUTHORIZATION, etc.
OptionType Types d'options TIMEOUT, CONNECT_TIMEOUT, VERIFY, etc.
CacheControl Cache NO_CACHE, NO_STORE, MAX_AGE, etc.
ConnectionType Connexion KEEP_ALIVE, CLOSE, UPGRADE
AcceptLanguage Langues FR, FR_FR, EN, EN_US, etc.
Encoding Encodages caractères UTF_8, UTF_16, ISO_8859_1, etc.

💡 Cas d'utilisation avec JSONPlaceholder

Exemple complet : Client JSONPlaceholder


🧩 Composants avancés

Struct - Structure complète de réponse API

Struct est une structure de données complète représentant une réponse API. Elle étend HydratableStructure et ajoute des méthodes d'encodage et de décodage.

Graph - Portion de structure de réponse API

Un Graph représente une portion de structure de réponse API. Il sert à documenter et structurer les fragments d'une réponse JSON.


🔧 Options disponibles (référence complète)

Headers via HeadersVO

Options via OptionsVO

UrlVO - Manipulation d'URL

UrlQueryVO - Manipulation de query


📊 Gestion des erreurs

Exceptions possibles

Situation Exception Message
URL invalide InvalidArgumentException Invalid URL: X
JSON invalide InvalidArgumentException Invalid JSON: Syntax error
Paramètre manquant InvalidArgumentException Missing required parameters for X: $Y
Erreur Guzzle RuntimeException HTTP request failed: X
Classe invalide TypeError -

Codes HTTP gérés via HttpStatusCode


🎯 Bonnes pratiques

1. Structurer ses requêtes avec UrlVO

2. Centraliser les URLs avec un Enum

3. Utiliser les enums pour les valeurs fixes

4. Configurer les headers dans un bloc


🔒 Sécurité

Validations automatiques

Validation Mécanisme
URL FILTER_VALIDATE_URL dans UrlVO
JSON json_decode() avec JSON_THROW_ON_ERROR dans ResponseBodyVO
Types Conversion automatique via HydratableStructure::convertValue()
Enums Enum::from() pour les valeurs d'enum

Headers de sécurité recommandés via HeadersVO


🧪 Tests

Exemple de test


📝 Licence

MIT © Andy Defer


All versions of php-client with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
andydefer/php-vo Version ^0.25.6
guzzlehttp/guzzle Version ^7.11
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 andydefer/php-client contains the following files

Loading the files please wait ...