Download the PHP package andydefer/storage-kit without Composer
On this page you can find all versions of the php package andydefer/storage-kit. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andydefer/storage-kit
More information about andydefer/storage-kit
Files in andydefer/storage-kit
Package storage-kit
Short Description Storage adapters : Memory, JSONL, and Cache
License MIT
Informations about the package storage-kit
Storage Kit - Documentation complète
📖 Table des matières
- Introduction
- Installation
- Concepts fondamentaux
- Les adaptateurs de stockage
- MemoryStorage - Stockage en mémoire
- JsonlStorage - Stockage JSONL
- CacheStorage - Stockage avec cache
- SessionStorage - Stockage en session
- CookieStorage - Stockage en cookies
- SqliteStorage - Stockage SQLite
- La factory
- Cas d'usage réels
- Cache de sessions utilisateur
- Persistance d'état d'application
- Cache multi-niveaux
- Migration de données
- Cache de résultats d'API
- Base de données embarquée
- Performance
- Intégration
- Avec Laravel
- Avec AlgoKIT
- Exemples complets
- API Reference
Introduction
StorageKit est une bibliothèque PHP qui fournit des adaptateurs de stockage unifiés pour différents types de persistance. Elle propose une interface commune (StorageInterface) pour le stockage et la récupération de données, avec six implémentations :
| Adaptateur | Description | Cas d'usage |
|---|---|---|
| MemoryStorage | Stockage en mémoire (RAM) | Tests, développement, données éphémères |
| JsonlStorage | Stockage persistant JSONL | Données persistantes, logs structurés |
| CacheStorage | Stockage avec cache (PhpFastCache) | Haute performance, TTL, multi-backends |
| SessionStorage | Stockage en session PHP | Données utilisateur, authentification |
| CookieStorage | Stockage en cookies navigateur | Préférences, données légères côté client |
| SqliteStorage | Stockage SQLite ACID | Base de données embarquée, persistance fiable |
Pourquoi StorageKit ?
- ✅ Interface unifiée : La même API pour tous les storages
- ✅ Flexibilité : Changez de storage sans modifier votre code
- ✅ Performance : Choisissez le storage adapté à vos besoins
- ✅ Persistance : Avec JSONL, Cache, Session, Cookie ou SQLite, vos données survivent aux requêtes
- ✅ TTL : Gérez l'expiration des données (CacheStorage, JsonlStorage)
- ✅ Statistiques : Suivez les performances de votre cache
- ✅ Batch operations : Optimisez les accès multiples
- ✅ Transactions ACID : Avec SqliteStorage pour l'intégrité des données
Installation
Prérequis
- PHP 8.1 ou supérieur
- Extension
json(activée par défaut) - (Optionnel) Extension
sqlite3pour SqliteStorage et le driver SQLite de CacheStorage - SessionStorage : La session PHP doit être démarrée (
session_start())
Concepts fondamentaux
StorageInterface
Tous les storages implémentent la même interface :
SqliteStorageInterface (étendue)
SqliteStorage ajoute des méthodes spécifiques aux bases de données :
Les adaptateurs de stockage
MemoryStorage - Stockage en mémoire
Description : Stocke les données dans un tableau PHP en mémoire RAM.
Caractéristiques :
- ⚡ Vitesse maximale
- ❌ Pas de persistance (perdu à la fin du script)
- 💾 Faible consommation mémoire (dépend des données)
Utilisation :
Cas d'usage :
- Cache de résultats d'API dans une requête
- Compteur en mémoire
- Cache de données de formulaire
- Cache de calculs lourds
JsonlStorage - Stockage JSONL
Description : Stocke les données sur disque au format JSON Lines.
Caractéristiques :
- 💾 Persistant sur disque
- 📁 Un fichier par clé (organisation par hash)
- ⏰ Support du TTL global
- 🔄 Support du contexte
- 📊 Statistiques d'utilisation
Structure des fichiers :
Utilisation :
Format du fichier JSONL :
Cas d'usage :
- Persistance des données d'application
- Logs structurés
- Cache persistant
- Sauvegarde d'état (AlgoKIT)
CacheStorage - Stockage avec cache
Description : Stockage utilisant PhpFastCache avec support de multiples backends.
Caractéristiques :
- 🚀 Haute performance
- 💾 Persistant (selon le driver)
- ⏰ TTL par clé
- 📊 Statistiques de performance
- 🔌 Multi-backends (Files, Sqlite)
Drivers supportés :
| Driver | Description | Cas d'usage |
|---|---|---|
| Files | Stockage sur disque | Développement, petite structure |
| Sqlite | Base de données SQLite | Performance, grande structure |
Utilisation avec Files :
Utilisation avec SQLite :
Cas d'usage :
- Cache de données
- Sessions utilisateur
- Mise en cache d'API
- Applications haute performance
SessionStorage - Stockage en session
Description : Stocke les données dans la session PHP ($_SESSION). Les données persistent pendant toute la session utilisateur.
Caractéristiques :
- 🔒 Persistant pendant la session utilisateur
- 🏷️ Isolation par namespace
- 📦 Stockage côté serveur
- ✅ Support de tous les types PHP
- ⚡ Accès rapide (mémoire)
Prérequis :
Utilisation :
Cas d'usage :
- Authentification utilisateur
- Panier d'achat
- Données de formulaire multi-étapes
- État de l'application par utilisateur
- Messages flash
CookieStorage - Stockage en cookies
Description : Stocke les données dans les cookies du navigateur. Les données persistent sur le poste du client.
Caractéristiques :
- 🌐 Stocké côté client
- ⏰ Expiration configurable
- 🔒 Options de sécurité (Secure, HttpOnly, SameSite)
- 📦 Taille limitée (~4KB par cookie)
- 🔄 Nombre de cookies limité (~50-150 par domaine)
Utilisation :
Cas d'usage :
- Préférences utilisateur (thème, langue)
- Panier d'achat léger
- Paramètres d'affichage
- Suivi de session simple
- Cookies de consentement (RGPD)
- Mémorisation des choix utilisateur
SqliteStorage - Stockage SQLite
Description : Stockage persistant utilisant SQLite comme base de données embarquée avec support ACID.
Caractéristiques :
- 💾 Persistant sur disque ou en mémoire
- 🔒 ACID (Atomicité, Cohérence, Isolation, Durabilité)
- 🔄 Transactions imbriquées
- ⏰ Support des opérations batch
- 📊 Statistiques détaillées
- 🚀 Optimisation VACUUM
- 📁 Création automatique des répertoires
Utilisation :
Cas d'usage :
- Base de données embarquée
- Persistance d'état d'application
- Configuration d'application
- Logs structurés avec SQL
- Stockage pour AlgoKIT
- Applications sans serveur SQL externe
La factory
StorageFactory simplifie la création des storages en centralisant la configuration.
Utilisation basique :
Configuration dynamique :
Création avancée :
Cas d'usage réels
Cache de sessions utilisateur
Persistance d'état d'application avec SQLite
Cache multi-niveaux
Base de données embarquée avec SQLite
Performance
Comparatif des storages
| Storage | Vitesse | Persistance | TTL | Transactions | Mémoire | Cas d'usage |
|---|---|---|---|---|---|---|
| MemoryStorage | ⚡⚡⚡ | ❌ | ❌ | ❌ | 💾 | Tests, éphémère |
| SessionStorage | ⚡⚡ | ✅ | ❌ | ❌ | 💾 | Données utilisateur |
| CookieStorage | ⚡⚡ | ✅ | ✅ | ❌ | 💾 | Préférences client |
| CacheStorage | ⚡⚡ | ✅ | ✅ | ❌ | 💾 | Cache haute perf |
| JsonlStorage | 🐌 | ✅ | ✅ | ❌ | 💾💾 | Persistance |
| SqliteStorage | ⚡ | ✅ | ❌ | ✅ | 💾 | Base de données ACID |
Limitations
| Storage | Limitation |
|---|---|
| CookieStorage | ~4KB par cookie, ~50-150 cookies par domaine |
| SessionStorage | Dépend de la configuration PHP (session.gc_maxlifetime) |
| JsonlStorage | I/O disque, lent pour de nombreuses écritures |
| SqliteStorage | 1 écriture simultanée, pas adapté aux gros volumes |
Optimisations
1. Utilisez MemoryStorage pour les données temporaires
2. Utilisez CacheStorage pour les données fréquentes
3. Utilisez SqliteStorage pour les données structurées
4. Batch operations pour de nombreux éléments
5. Transactions SQLite pour l'intégrité des données
6. VACUUM périodique pour SQLite
Intégration
Avec Laravel
1. Configuration
2. Service Provider
3. Utilisation dans un Controller
Avec AlgoKIT
Exemples complets
Système de cache complet avec tous les storages
Application de monitoring avec SQLite
API Reference
Interfaces
| Interface | Description |
|---|---|
StorageInterface |
Interface de base pour tous les storages |
CacheStorageInterface |
Interface étendue pour CacheStorage |
JsonlStorageInterface |
Interface étendue pour JsonlStorage |
SessionStorageInterface |
Interface étendue pour SessionStorage |
CookieStorageInterface |
Interface étendue pour CookieStorage |
SqliteStorageInterface |
Interface étendue pour SqliteStorage |
Classes
| Classe | Description |
|---|---|
MemoryStorage |
Stockage en mémoire |
JsonlStorage |
Stockage JSONL |
CacheStorage |
Stockage avec cache |
SessionStorage |
Stockage en session |
CookieStorage |
Stockage en cookies |
SqliteStorage |
Stockage SQLite |
StorageFactory |
Factory de storages |
Enums
| Enum | Description |
|---|---|
StorageSystem |
Systèmes de stockage disponibles |
CacheDriver |
Drivers de cache disponibles |
Records
| Record | Description |
|---|---|
CacheConfigRecord |
Configuration de CacheStorage |
CacheStorageStatsRecord |
Statistiques de CacheStorage |
JsonlStorageStatsRecord |
Statistiques de JsonlStorage |
SqliteStorageStatsRecord |
Statistiques de SqliteStorage |
JsonlStorageRecord |
Record pour JSONL |
License
MIT © Andy Defer
All versions of storage-kit with dependencies
phpfastcache/phpfastcache Version ^9.2
andydefer/php-jsonl Version ^0.11.27