eirwego / license
Library to manage Eirwego license
Requires
- php: ~7.1
- ext-json: *
Requires (Dev)
This package is auto-updated.
Last update: 2026-01-16 15:17:57 UTC
README
Bibliothèque PHP simple pour la gestion de licences Eirwego. Cette bibliothèque encapsule les informations d'une licence dans une classe PHP avec support de la sérialisation JSON.
📖 Vue d'ensemble
Ce repository contient une bibliothèque PHP simple pour la gestion de licences Eirwego. Il s'agit d'une bibliothèque minimale qui encapsule les informations d'une licence dans une classe PHP.
Cette bibliothèque est une implémentation simple et fonctionnelle pour gérer des licences Eirwego. Elle remplit son objectif principal mais pourrait bénéficier d'améliorations en termes de tests, documentation et modernisation (PHP 8+).
📋 Table des matières
- Vue d'ensemble
- Installation
- Utilisation
- API Reference
- Structure du projet
- Analyse détaillée
- Caractéristiques
- Points d'amélioration
- Recommandations
- Exigences
- Licence
🚀 Installation
Via Composer
composer require eirwego/license
Exigences
- PHP : 7.1 ou supérieure
- Extension :
ext-json(requis)
💻 Utilisation
Création d'une licence
use Eirwego\License;
// Création avec tous les paramètres
$license = new License(10, 'premium', 'https://example.com/license');
// Création avec valeurs par défaut
$license = new License(); // seats=0, type=null, url=null
// Création partielle
$license = new License(5, 'basic');
Accès aux propriétés
// Getters
echo $license->getSeats(); // 10
echo $license->getType(); // 'premium'
echo $license->getUrl(); // 'https://example.com/license'
Modification des propriétés
// Setters
$license->setSeats(20);
$license->setType('enterprise');
$license->setUrl('https://example.com/new-license');
Sérialisation JSON
// Via json_encode() (implémente JsonSerializable)
$json = json_encode($license);
// Résultat: {"seats":10,"type":"premium","url":"https://example.com/license"}
// Via __toString()
echo (string)$license; // Même résultat
📚 API Reference
Classe License
Constructeur
public function __construct(int $seats = 0, ?string $type = null, ?string $url = null)
Crée une nouvelle instance de License.
Paramètres :
$seats(int) : Nombre de sièges/licences disponibles (défaut: 0)$type(string|null) : Type de licence (défaut: null)$url(string|null) : URL associée à la licence (défaut: null)
Méthodes
Getters
getSeats(): int- Retourne le nombre de siègesgetType(): ?string- Retourne le type de licencegetUrl(): ?string- Retourne l'URL de la licence
Setters
setSeats(int $seats)- Définit le nombre de siègessetType(string $type)- Définit le type de licencesetUrl(string $url)- Définit l'URL de la licence
Sérialisation
jsonSerialize(): array- Retourne un tableau pour la sérialisation JSON__toString(): string- Retourne la représentation JSON de l'objet
📁 Structure du projet
license.lib/
├── composer.json # Configuration Composer
├── README.md # Documentation
└── src/
└── License.php # Classe principale de la bibliothèque
Namespace
- Namespace :
Eirwego - Autoloading : PSR-4 (
Eirwego\→src/)
✨ Caractéristiques
Points forts
✅ Code propre et simple : Structure claire et facile à comprendre
✅ Type safety : Utilisation de types stricts et de type hints
✅ PSR-4 : Respect des standards d'autoloading
✅ JsonSerializable : Support natif de la sérialisation JSON
✅ Documentation : PHPDoc présent pour les propriétés
Propriétés
La classe License contient trois propriétés :
$seats(int) : Nombre de sièges/licences disponibles$type(string|null) : Type de licence$url(string|null) : URL associée à la licence
Implémentations
- JsonSerializable : Permet la sérialisation JSON native
- Strict types : Utilisation de
declare(strict_types=1)
🔍 Analyse détaillée
1. Configuration Composer (composer.json)
Informations du package :
- Nom :
eirwego/license - Description : Library to manage Eirwego license
- Type : library
- Licence : MIT
- Auteur : Alexandre Lahure (alexandre@lahu.re)
Dépendances :
- PHP :
~7.1(version 7.1 ou supérieure, mais inférieure à 8.0) - Extension :
ext-json(requis)
Dépendances de développement :
friendsofphp/php-cs-fixer: Outil de formatage de codephpstan/phpstan: Analyseur statique de code PHP
Autoloading :
- Namespace PSR-4 :
Eirwego\→src/
2. Classe License (src/License.php)
Caractéristiques principales :
- Namespace :
Eirwego - Implémente :
JsonSerializable(permet la sérialisation JSON) - Strict types : Activé (
declare(strict_types=1))
Propriétés :
$seats(int) : Nombre de sièges/licences disponibles$type(string|null) : Type de licence$url(string|null) : URL associée à la licence
Méthodes publiques :
Constructeur :
__construct(int $seats = 0, ?string $type = null, ?string $url = null)- Permet d'initialiser une licence avec des valeurs par défaut
Getters :
getSeats(): intgetType(): ?stringgetUrl(): ?string
Setters :
setSeats(int $seats)setType(string $type)setUrl(string $url)
Sérialisation :
__toString(): Retourne la représentation JSON de l'objetjsonSerialize(): array: Implémente l'interface JsonSerializable
⚠️ Points d'amélioration potentiels
⚠️ Version PHP obsolète : Requiert PHP 7.1 (version EOL depuis 2019)
⚠️ Pas de tests : Aucun fichier de test (PHPUnit) présent
⚠️ Pas de README : Documentation manquante pour les utilisateurs (maintenant résolu)
⚠️ Pas de validation : Aucune validation des données dans les setters
⚠️ Pas de méthodes utilitaires : Pas de méthodes pour comparer, cloner, etc.
⚠️ Setters sans type de retour : Les setters ne retournent pas self (fluent interface)
⚠️ Gestion d'erreurs : __toString() utilise ?: '' mais ne gère pas les erreurs JSON
💡 Recommandations
- Mettre à jour PHP : Passer à PHP 8.0+ minimum
- Ajouter des tests : Créer une suite de tests PHPUnit
- Ajouter un README : Documenter l'utilisation de la bibliothèque (maintenant résolu)
- Améliorer les setters : Retourner
selfpour permettre le chaînage - Ajouter de la validation : Valider les valeurs dans les setters (ex:
$seats >= 0) - Ajouter des méthodes utilitaires :
equals(),isEmpty(), etc. - Gérer les erreurs JSON : Améliorer la gestion d'erreurs dans
__toString()
⚙️ Exigences
Dépendances
- PHP :
~7.1(version 7.1 ou supérieure, mais inférieure à 8.0) - Extension :
ext-json(requis)
Dépendances de développement
friendsofphp/php-cs-fixer: Outil de formatage de codephpstan/phpstan: Analyseur statique de code PHP
📝 Informations du package
- Nom :
eirwego/license - Description : Library to manage Eirwego license
- Type : library
- Licence : MIT
- Auteur : Alexandre Lahure (alexandre@lahu.re)
📄 Licence
Ce projet est sous licence MIT. Voir le fichier de licence dans le code source pour plus de détails.
The MIT License
Copyright 2019 Alexandre Lahure <alexandre@lahu.re>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
📊 Conclusion
Cette bibliothèque est une implémentation simple et fonctionnelle pour gérer des licences Eirwego. Elle remplit son objectif principal mais pourrait bénéficier d'améliorations en termes de tests, documentation et modernisation (PHP 8+).
Pour plus de détails sur l'analyse complète du repository, consultez le fichier RAPPORT.md.