Download the PHP package andydefer/laravel-addresses without Composer
On this page you can find all versions of the php package andydefer/laravel-addresses. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andydefer/laravel-addresses
More information about andydefer/laravel-addresses
Files in andydefer/laravel-addresses
Package laravel-addresses
Short Description Laravel package providing polymorphic addresses with Repository pattern, DTOs, Enums, and Value Objects.
License MIT
Informations about the package laravel-addresses
Laravel Addresses
Un package Laravel complet pour gérer des adresses polymorphiques avec le pattern Repository, des DTOs, des Value Objects et une gestion des adresses principales.
✨ Fonctionnalités
- ✅ Adresses polymorphiques - Attachez des adresses à n'importe quel modèle Eloquent
- ✅ Types d'adresses multiples - PRINCIPALE, FACTURATION, LIVRAISON, PROFESSIONNELLE, AUTRE
- ✅ Gestion de l'adresse principale - Définissez et récupérez l'adresse principale
- ✅ Pattern Repository - Séparation propre de la logique d'accès aux données
- ✅ Support des DTOs - Objets de transfert de données typés
- ✅ Value Objects - Pays, Code postal, Coordonnées, Date/Heure
- ✅ Support des métadonnées - Stockez des données supplémentaires au format JSON
- ✅ Suppression douce - Suppression sécurisée avec possibilité de restauration
- ✅ Filtrage avancé - Filtrez par type, ville, pays, code postal
- ✅ Mises à jour brutes - Mettez à jour avec support des valeurs NULL
- ✅ Tests complets - Couverture complète des tests d'intégration
📦 Installation
Installez le package via Composer :
Publier les migrations
Exécuter les migrations
⚙️ Configuration
Le package est automatiquement découvert par Laravel. Aucune configuration supplémentaire n'est requise.
Si vous devez personnaliser le Service Provider, ajoutez-le manuellement dans config/app.php :
📖 Utilisation
Ajouter une adresse
Récupérer des adresses
Toutes les adresses
Par type
Adresse principale
Trouver par ID
Compter les adresses
Vérifier si un type existe
Mettre à jour une adresse
Mise à jour avec un Record (DTO)
Mise à jour avec des données brutes (incluant NULL)
Utilisez updateRaw() lorsque vous devez définir des champs à NULL dans la base de données :
Supprimer une adresse
Gestion de l'adresse principale
Définir une adresse comme principale
Note : Cela rétrogradera automatiquement l'ancienne adresse principale en
AddressType::OTHER.
Récupérer l'adresse principale
🔍 Filtrer les adresses
Utilisez AddressFilterRecord pour un filtrage avancé :
📚 Référence de l'API
AddressService
| Méthode | Description | Retourne |
|---|---|---|
add(Model $addressable, AddressRecord $record) |
Créer une nouvelle adresse | Model |
update(int $addressId, AddressRecord $record) |
Mettre à jour une adresse avec DTO | Model |
updateRaw(int $addressId, array $data) |
Mettre à jour avec données brutes (NULL) | Model |
delete(int $addressId) |
Supprimer une adresse | bool |
all(Model $addressable) |
Récupérer toutes les adresses | Collection |
byType(Model $addressable, AddressType $type) |
Récupérer les adresses par type | Collection |
primary(Model $addressable) |
Récupérer l'adresse principale | ?Model |
setPrimary(Model $addressable, int $addressId) |
Définir l'adresse principale | void |
find(int $addressId) |
Trouver une adresse par ID | ?Model |
count(Model $addressable) |
Compter les adresses | int |
hasType(Model $addressable, AddressType $type) |
Vérifier si un type existe | bool |
AddressType Enum
| Cas | Valeur |
|---|---|
AddressType::PRIMARY |
'primary' |
AddressType::BILLING |
'billing' |
AddressType::SHIPPING |
'shipping' |
AddressType::WORK |
'work' |
AddressType::OTHER |
'other' |
🎯 Value Objects
Le package supporte les Value Objects suivants de andydefer/php-vo :
| Value Object | Description | Exemple |
|---|---|---|
Country |
Enum des pays | Country::FR, Country::US |
PostalCodeVO |
Code postal | PostalCodeVO::from('75001') |
CoordinatesVO |
Coordonnées géographiques | CoordinatesVO::from(['latitude' => 48.8566, 'longitude' => 2.3522]) |
DateTimeVO |
Date/heure | DateTimeVO::from('2024-01-01 12:00:00') |
Accesseurs dans le modèle Address
Le modèle Address fournit des accesseurs pratiques :
🧪 Tests
Exécuter les tests
Exécuter uniquement les tests unitaires
Exécuter uniquement les tests d'intégration
Configuration des tests
Le package utilise orchestra/testbench pour les tests d'intégration avec une base de données SQLite en mémoire.
📝 Schéma de la base de données
🔧 Développement
Style de code
Analyse statique
📄 Journal des modifications
Veuillez consulter le CHANGELOG pour plus d'informations sur les modifications récentes.
🤝 Contribuer
Veuillez consulter CONTRIBUTING pour plus de détails.
Flux de développement
- Forkez le dépôt
- Créez une branche de fonctionnalité (
git checkout -b feature/amazing-feature) - Apportez vos modifications
- Exécutez les tests (
composer test) - Committez vos modifications (
git commit -m 'Ajouter une fonctionnalité géniale') - Poussez vers la branche (
git push origin feature/amazing-feature) - Ouvrez une Pull Request
📦 Dépendances
andydefer/php-vo- Value Objectsandydefer/laravel-repository- Implémentation du pattern Repository
👨💻 Auteur
Andy Kani
- GitHub: @andydefer
- Email: [email protected]
📄 Licence
La licence MIT (MIT). Veuillez consulter le Fichier de licence pour plus d'informations.
⭐ Support
Si vous trouvez ce package utile, n'hésitez pas à lui donner une ⭐ sur GitHub !
All versions of laravel-addresses with dependencies
laravel/framework Version ^12.0|^13.0|^14.0|^15.0
andydefer/laravel-repository Version ^2.17.30