Download the PHP package andydefer/laravel-mixins without Composer
On this page you can find all versions of the php package andydefer/laravel-mixins. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andydefer/laravel-mixins
More information about andydefer/laravel-mixins
Files in andydefer/laravel-mixins
Package laravel-mixins
Short Description A collection of reusable Laravel model traits for availability, ratings, and more
License MIT
Informations about the package laravel-mixins
Laravel Mixins
Collection de traits Eloquent réutilisables pour Laravel
Un package Laravel qui fournit des traits pour ajouter rapidement des attributs de disponibilité et d'évaluation à vos modèles Eloquent.
📋 Table des matières
- Fonctionnalités
- Prérequis
- Installation
- Configuration
- Utilisation
- HasAvailabilityAttributes
- HasRatingAttributes
- Référence de l'API
- HasAvailabilityAttributes
- HasRatingAttributes
- Exemples complets
- Tests
- Contribuer
- Licence
✨ Fonctionnalités
- ✅ HasAvailabilityAttributes - Attributs de disponibilité pour les modèles planifiables
- ✅ HasRatingAttributes - Attributs d'évaluation pour les modèles notables
- ✅ Attributs Eloquent typés - Accès direct aux propriétés du modèle
- ✅ Value Objects - Retourne des objets typés (SlotVO, DateTimeZuluVO)
- ✅ Intégration native - Fonctionne avec Laravel Chronos et Laravel Ratings
- ✅ Personnalisable - Surchargez
isSchedulable()etisRateable()pour des conditions métier - ✅ 0 configuration - Fonctionne immédiatement après installation
🚀 Prérequis
- PHP 8.1 ou supérieur
- Laravel 12.0, 13.0, 14.0 ou 15.0
andydefer/laravel-chronos^1.0andydefer/laravel-ratings^1.0
📦 Installation
Installez le package via Composer :
Publier la configuration (optionnel)
⚙️ 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 :
Fichier de configuration
📖 Utilisation
HasAvailabilityAttributes
Ajoutez le trait à votre modèle pour bénéficier des attributs de disponibilité.
Attributs disponibles
| Attribut | Type | Description |
|---|---|---|
$model->is_available_now |
bool |
L'entité est-elle disponible maintenant ? |
$model->next_slot |
SlotVO\|null |
Prochain créneau disponible |
$model->has_availability_on_date |
bool |
L'entité a-t-elle des disponibilités aujourd'hui ? |
$model->total_available_minutes |
int |
Total des minutes disponibles aujourd'hui |
HasRatingAttributes
Ajoutez le trait à votre modèle pour bénéficier des attributs d'évaluation.
Attributs disponibles
| Attribut | Type | Description |
|---|---|---|
$model->average_rating |
float |
Note moyenne (0.0 si aucune note) |
$model->rating_count |
int |
Nombre total d'évaluations |
$model->rating_distribution |
array |
Distribution des notes par niveau (1-5) |
$model->has_ratings |
bool |
Le modèle a-t-il des évaluations ? |
📚 Référence de l'API
HasAvailabilityAttributes API
isAvailableNow(): Attribute<bool>
Vérifie si l'entité est disponible à l'instant présent.
| Paramètre | Type | Description |
|---|---|---|
| Aucun | - | - |
Retourne : Attribute<bool>
Exceptions : Aucune (les erreurs sont capturées)
Exemple :
nextSlot(): Attribute<SlotVO|null>
Retourne le prochain créneau disponible.
| Paramètre | Type | Description |
|---|---|---|
| Aucun | - | - |
Retourne : Attribute<SlotVO|null>
Exceptions : Aucune (les erreurs sont capturées)
Exemple :
hasAvailabilityOnDate(): Attribute<bool>
Vérifie si l'entité a des disponibilités aujourd'hui.
| Paramètre | Type | Description |
|---|---|---|
| Aucun | - | - |
Retourne : Attribute<bool>
Exceptions : Aucune (les erreurs sont capturées)
Exemple :
totalAvailableMinutes(): Attribute<int>
Retourne le total des minutes disponibles aujourd'hui.
| Paramètre | Type | Description |
|---|---|---|
| Aucun | - | - |
Retourne : Attribute<int>
Exceptions : Aucune (les erreurs sont capturées)
Exemple :
HasRatingAttributes API
averageRating(): Attribute<float>
Retourne la note moyenne du modèle.
| Paramètre | Type | Description |
|---|---|---|
| Aucun | - | - |
Retourne : Attribute<float>
Exceptions : Aucune (les erreurs sont capturées)
Exemple :
ratingCount(): Attribute<int>
Retourne le nombre total d'évaluations.
| Paramètre | Type | Description |
|---|---|---|
| Aucun | - | - |
Retourne : Attribute<int>
Exceptions : Aucune (les erreurs sont capturées)
Exemple :
ratingDistribution(): Attribute<array<int, int>>
Retourne la distribution des notes par niveau (1 à 5).
| Paramètre | Type | Description |
|---|---|---|
| Aucun | - | - |
Retourne : Attribute<array<int, int>>
Exceptions : Aucune (les erreurs sont capturées)
Exemple :
hasRatings(): Attribute<bool>
Indique si le modèle a au moins une évaluation.
| Paramètre | Type | Description |
|---|---|---|
| Aucun | - | - |
Retourne : Attribute<bool>
Exceptions : Aucune (les erreurs sont capturées)
Exemple :
🔍 Exemples complets
Modèle Doctor avec les deux traits
Contrôleur d'API
Liste des médecins disponibles
🧪 Tests
Exécuter les tests
Exécuter uniquement les tests d'intégration
Structure des tests
🔧 Développement
Style de code
Analyse statique
🤝 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/laravel-chronos^1.0 - Moteur de planificationandydefer/laravel-ratings^1.0 - Système d'évaluation
👨💻 Auteur
Andy Defer
- GitHub: @andydefer
📄 Licence
Ce package est sous licence MIT. Voir le fichier LICENSE pour plus d'informations.
⭐ Support
Si vous trouvez ce package utile, n'hésitez pas à lui donner une ⭐ sur GitHub !
Construit avec ❤️ pour la communauté Laravel
All versions of laravel-mixins with dependencies
laravel/framework Version ^12.0|^13.0|^14.0|^15.0
andydefer/laravel-chronos Version ^0.9.11
andydefer/laravel-ratings Version ^1.3.15
andydefer/laravel-addresses Version ^2.3.49