Download the PHP package neocode/fne-client without Composer
On this page you can find all versions of the php package neocode/fne-client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download neocode/fne-client
More information about neocode/fne-client
Files in neocode/fne-client
Package fne-client
Short Description SDK PHP framework-agnostic pour l'intégration de l'API FNE (Facture Normalisée Électronique) - Version 1.0.0
License MIT
Informations about the package fne-client
FNE Client
SDK PHP framework-agnostic pour l'intégration de l'API FNE (Facture Normalisée Électronique). Compatible avec Laravel 11+, Symfony 7.4+ et PHP natif.
🚀 Caractéristiques
- ✅ Framework-agnostic : Compatible Laravel 11+, Symfony 7.4+ et PHP natif
- ✅ Architecture SOLID : Code propre et maintenable
- ✅ Type-safe : Utilisation d'enums PHP 8.2+ pour la sécurité de type
- ✅ Validation robuste : Validation des données avant envoi à l'API
- ✅ Gestion d'erreurs : Exceptions détaillées et typées
- ✅ Cache intégré : Support du cache PSR-16
- ✅ Logging : Support du logging PSR-3
- ✅ Installation interactive : Assistant d'installation avec prompts
- ✅ Détection automatique : Détection du framework lors de l'installation
- ✅ Gestion modulaire : Modules activables via Laravel Pennant (Laravel uniquement)
- ✅ Mapping personnalisé : Transformation flexible des données ERP vers le format FNE
- ✅ Intégration modèles : Traits pour intégrer directement la certification dans vos modèles
- ✅ Support multi-framework : Compatible Laravel Eloquent, Symfony Doctrine et PHP natif
📦 Installation
Laravel 11+
Symfony 7.4+
PHP Natif
⚡ Quick Start
Laravel
Symfony
PHP Natif
📖 Documentation
Configuration
Variables d'environnement
Fichier de configuration (Laravel)
Le fichier config/fne.php est publié lors de l'installation :
Mapping Personnalisé
Le package supporte le mapping personnalisé pour transformer vos données ERP vers le format FNE. Configurez le mapping dans config/fne.php :
Utilisation avec notation pointée :
'clientCompanyName' => 'client.name'transforme$data['client']['name']en$data['clientCompanyName']'clientPhone' => 'customer.phone_number'transforme$data['customer']['phone_number']en$data['clientPhone']
Le mapping personnalisé est appliqué avant le mapping standard du package, permettant une transformation flexible de vos structures de données.
Exemple d'utilisation :
Services Disponibles
InvoiceService - Factures de Vente
PurchaseService - Bordereaux d'Achat
RefundService - Avoirs
Traits pour Modèles
Le package fournit des traits pour intégrer facilement la certification FNE dans vos modèles. Les traits détectent automatiquement le framework (Laravel, Symfony, PHP natif) et utilisent le service container approprié.
CertifiableInvoice - Factures de Vente
Méthodes supportées pour l'extraction des données :
toArray()(Laravel Eloquent)attributesToArray()(Laravel Eloquent)getAttributes()(Laravel Eloquent)__toArray()(Symfony/Doctrine)- Cast en array (PHP natif)
CertifiablePurchase - Bordereaux d'Achat
CertifiableRefund - Avoirs
Détection automatique de l'ID FNE : Le trait cherche l'ID FNE dans l'ordre suivant :
- Attribut
fne_id - Attribut
fne_invoice_id - Méthode
getFneInvoiceId()
Certifiable - Trait Combiné
Pour les modèles qui peuvent être factures ET bordereaux :
Intégration avec le Mapping Personnalisé :
Lorsque vous utilisez les traits avec des modèles, le mapping personnalisé configuré dans config/fne.php est automatiquement appliqué. Cela permet de transformer vos structures de données ERP directement depuis vos modèles :
Note : Les traits détectent automatiquement le framework (Laravel, Symfony, PHP natif) et utilisent le service container approprié. Ils supportent également l'extraction de données depuis différents types de modèles (Eloquent, Doctrine, objets PHP natifs).
Enums Disponibles
InvoiceTemplate
PaymentMethod
TaxType
Gestion des Erreurs
Le package utilise une hiérarchie d'exceptions typées :
Trait InteractsWithFNE (Laravel)
Pour un accès simplifié au client FNE dans vos classes Laravel :
Utilisation Avancée avec Modèles et Mapping
Exemple Complet : Intégration ERP avec Mapping Personnalisé
Utilisation Programmatique du Mapping
🧪 Tests
Le package inclut une suite de tests complète avec 67 tests (222 assertions) couvrant :
- ✅ Tests unitaires (Cache, DTOs, Enums, Mappers, Validators)
- ✅ Tests d'intégration (Services avec API mock)
- ✅ Tests de traits (CertifiableInvoice, CertifiablePurchase, CertifiableRefund)
- ✅ Tests de mapping personnalisé
- ✅ Tests d'intégration modèles
📚 API Reference
FNEClient
Point d'entrée principal du SDK.
InvoiceService
Service pour la gestion des factures de vente.
Ordre de priorité pour la récupération des données :
- Données explicites passées à
sign($data) - Données de contexte via
setData() - Données du modèle via
setModel() - Exception si aucune donnée disponible
PurchaseService
Service pour la gestion des bordereaux d'achat.
RefundService
Service pour la gestion des avoirs.
BaseMapper
Classe de base pour les mappers avec support du mapping personnalisé.
🔧 Développement
Prérequis
- PHP 8.2+
- Composer 2.0+
Installation des dépendances de développement
Formatage du code
Analyse statique
📝 Licence
MIT License - Voir le fichier LICENSE pour plus de détails.
🤝 Contribution
Les contributions sont les bienvenues ! Veuillez lire le guide de contribution avant de soumettre une pull request.
📞 Support
- Documentation : https://fne-client.neocode.ci/
- Repository GitHub : https://github.com/neocodesupport/fne-client
- Issues : https://github.com/neocodesupport/fne-client/issues
- Email : [email protected]
🙏 Remerciements
Ce package a été développé pour faciliter l'intégration de l'API FNE dans les applications PHP.
Développé avec ❤️ par Neocode
All versions of fne-client with dependencies
psr/http-message Version ^1.0 || ^2.0
psr/http-client Version ^1.0 || ^2.0
psr/log Version ^1.0 || ^2.0 || ^3.0
psr/simple-cache Version ^1.0 || ^2.0 || ^3.0
laravel/prompts Version ^0.1 || ^0.2 || ^0.3
laravel/pennant Version ^1.0 || ^2.0