cogepfrance / php-utils
Librairie de composants utilitaires PHP
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/cogepfrance/php-utils
Requires
- ext-simplexml: *
- symfony/cache-contracts: ^3.6
- symfony/clock: ^8.0
- symfony/dependency-injection: ^8.0
- symfony/http-client: ^8.0
- symfony/json-streamer: ^8.0
- symfony/monolog-bundle: ^4.0
- symfony/string: ^8.0
Requires (Dev)
- captainhook/captainhook-phar: ^5.27.4
- captainhook/hook-installer: ^1.0.4
- composer/composer: ^2.9
- mockery/mockery: ^1.6.12
- phpstan/phpstan: ^2.1.33
- phpstan/phpstan-symfony: ^2.0.9
- phpunit/phpunit: ^12.5.5
- slevomat/coding-standard: ^8.26
- symplify/easy-coding-standard: ^13.0.4
README
Cette librairie regroupe un ensemble de composants utilitaires pour uniformiser le développement des projets (Connecteurs, Mapping, DTO, etc.).
🏗️ Architecture & Structures
- DynamicPropertyClass : Permet de déclarer des classes dont on peut remplir les propriétés dynamiquement sans les avoir préalablement déclarées.
- DTOInterface : Interface de marquage pour représenter un
DTO. - EntityInterface : Interface de marquage pour représenter une
Entity.
🔌 Connectors API
- ApiConnector (Abstract) : Gère l'authentification ainsi que la mise en cache du jeton (Token). La configuration par défaut peut être surchargée selon les spécificités de l'API ciblée.
- ApiConnectorHelper :
processInBatches: Traite des requêtes en parallèle par lots avec gestion native du retry.streamResponse: Stream les réponses API pour une lecture au fil de l'eau (optimisation mémoire).
- ApiException (Abstract) : Classe de base pour traiter les retours d'erreurs API et extraire les détails de l'exception.
💾 InMemory (Persistence)
CSV
- CsvFetcher : Permet de lire un fichier CSV et d'en retourner les données sous forme de tableau.
- CsvPersister : Écrit un CSV à partir d'un tableau de données ou d'objets.
- Utilise un
warmupLimit(X) pour extraire les headers depuis les attributs ou les clés des X premières données. - Retourne un objet
PersisterResult.
- Utilise un
JSON
- JsonPersister : Permet d'écrire un fichier JSON depuis un tableau de données ou d'objets.
- Retourne un objet
PersisterResult.
- Retourne un objet
📝 Logs
- LoggerFormator : Gère le formatage et la colorisation des logs dans la console.
- UrlTruncatorProcessor : Processeur Monolog qui tronque les messages de plus de 500 caractères en ajoutant
...pour éviter les logs trop volumineux.
🔄 Mapping
- DtoEntityMapper :
mergeDtosToEntity: Permet de consolider plusieursDTOInterfacevers uneEntityInterfaceunique.- Règle : Les attributs doivent porter le même nom. La priorité est définie du premier au dernier DTO : l'outil ne remplit que les propriétés encore vides de l'entité.
🧪 Tests & Qualité
- Dummy Objects : Fournit
DummyDynamicDTOetDummyDynamicEntitypour faciliter les tests unitaires. - Dev - CoverageChecker : Outil de contrôle qualité qui analyse le fichier
clover.xml.- Permet de configurer un seuil (
threshold) de couverture minimum. - Stoppe le processus (
exit 1) si le pourcentage de couverture est insuffisant.
- Permet de configurer un seuil (