Download the PHP package andydefer/laravel-comments without Composer
On this page you can find all versions of the php package andydefer/laravel-comments. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andydefer/laravel-comments
More information about andydefer/laravel-comments
Files in andydefer/laravel-comments
Package laravel-comments
Short Description Laravel package providing polymorphic comments with Repository pattern, DTOs, Enums, Status management, and Value Objects.
License MIT
Informations about the package laravel-comments
Laravel Comments
Système de commentaires polymorphiques pour applications Laravel
Un package Laravel complet pour gérer des commentaires polymorphiques avec le pattern Repository, des DTOs, des Value Objects, une modération intégrée et un système de réponses.
📋 Table des matières
- Fonctionnalités
- Prérequis
- Installation
- Configuration
- Utilisation
- Ajouter un commentaire
- Ajouter une réponse
- Récupérer des commentaires
- Mettre à jour un commentaire
- Supprimer un commentaire
- Modération des commentaires
- Compter les commentaires
- Référence de l'API
- Statuts des commentaires
- Value Objects
- Structure de la base de données
- Tests
- Journal des modifications
- Contribuer
- Licence
✨ Fonctionnalités
- ✅ Double polymorphisme - Commentez n'importe quel modèle avec n'importe quel auteur
- ✅ Système de réponses - Commentaires imbriqués avec support des threads
- ✅ Modération intégrée - Statuts : Publié, Masqué, Signalé
- ✅ 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 - DateTime, Métadonnées
- ✅ 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 auteur, objet, parent, statut
- ✅ Tests complets - Couverture complète des tests d'intégration
🚀 Prérequis
- PHP 8.2 ou supérieur
- Laravel 12.0, 13.0, 14.0 ou 15.0
📦 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 un commentaire
Ajouter une réponse
Récupérer des commentaires
Tous les commentaires d'un modèle
Réponses d'un commentaire
Commentaires d'un auteur
Trouver un commentaire par ID
Mettre à jour un commentaire
Supprimer un commentaire
Modération des commentaires
Masquer un commentaire
Publier un commentaire
Signaler un commentaire
Compter les commentaires
📚 Référence de l'API
CommentService
| Méthode | Description | Retourne |
|---|---|---|
add(Model $commenter, Model $commentable, string $content, ?int $parentId = null) |
Créer un commentaire | Model |
update(int $commentId, string $content) |
Mettre à jour le contenu | Model |
delete(int $commentId) |
Supprimer un commentaire | void |
hide(int $commentId) |
Masquer un commentaire | Model |
publish(int $commentId) |
Publier un commentaire | Model |
flag(int $commentId) |
Signaler un commentaire | Model |
get(Model $commentable, bool $onlyPublished = true) |
Récupérer les commentaires | Collection |
getReplies(int $parentId, bool $onlyPublished = true) |
Récupérer les réponses | Collection |
getByCommenter(Model $commenter) |
Récupérer par auteur | Collection |
find(int $commentId) |
Trouver par ID | ?Model |
count(Model $commentable, bool $onlyPublished = true) |
Compter les commentaires | int |
countFlagged() |
Compter les signalés | int |
countHidden() |
Compter les masqués | int |
countPublished() |
Compter les publiés | int |
🏷️ Statuts des commentaires
| Statut | Valeur | Description | Méthode associée |
|---|---|---|---|
PUBLISHED |
'published' |
Commentaire visible | publish() |
HIDDEN |
'hidden' |
Commentaire masqué | hide() |
FLAGGED |
'flagged' |
Commentaire signalé | flag() |
Méthodes du statut
🎯 Value Objects
Le package supporte les Value Objects suivants :
| Value Object | Description | Exemple |
|---|---|---|
DateTimeVO |
Date/heure | DateTimeVO::from('2024-01-01 12:00:00') |
StrictDataObject |
Métadonnées typées | StrictDataObject::from(['key' => 'value']) |
Accesseurs dans le modèle Comment
📝 Structure de la base de données
🔍 Exemple complet
🧪 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.
🔧 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 Repositoryandydefer/domain-structures- Structures de domaine (AbstractRecord, AbstractData)
👨💻 Auteur
Andy Kani
- GitHub: @andydefer
- Email: [email protected]
⭐ Support
Si vous trouvez ce package utile, n'hésitez pas à lui donner une ⭐ sur GitHub !
🙏 Remerciements
- Framework Laravel
- Tous les contributeurs et utilisateurs de ce package
Construit avec ❤️ pour la communauté Laravel
All versions of laravel-comments with dependencies
laravel/framework Version ^12.0|^13.0|^14.0|^15.0
andydefer/laravel-repository Version ^2.17.30