PHPackages                             maximeetundi/openwirecomment - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. maximeetundi/openwirecomment

ActiveLibrary

maximeetundi/openwirecomment
============================

Package Laravel open source pour un système de commentaires avec Livewire

02PHP

Since Feb 18Pushed 1y ago1 watchersCompare

[ Source](https://github.com/maximeetundi/openwirecomment)[ Packagist](https://packagist.org/packages/maximeetundi/openwirecomment)[ RSS](/packages/maximeetundi-openwirecomment/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

openwirecomment
===============

[](#openwirecomment)

**openwirecomment** est un package Laravel open source développé par **Maxime ETUNDI** () qui offre un système de commentaires complet intégrant :

- Des commentaires et réponses (imbriqués) via une relation polymorphique.
- La possibilité d'ajouter des likes aux commentaires.
- L’upload d’un fichier en pièce jointe (avec une taille maximale de 10MB).
- Le support des emojis dans le contenu des commentaires via AlpineJS.
- Une intégration avec Livewire pour une interactivité en temps réel.
- La gestion des utilisateurs authentifiés ET des visiteurs non authentifiés (saisie du nom et de l'email requise pour ces derniers).
- L'enregistrement de l'adresse IP et du user-agent à chaque commentaire.

Fonctionnalités
---------------

[](#fonctionnalités)

- **Relation Polymorphique &amp; Trait Personnalisé :**
    Associez le système de commentaires à n'importe quel modèle Eloquent en utilisant le trait dédié `HasOpenWireComments`.
- **Système de Like :**
    Chaque commentaire peut être liké une seule fois par utilisateur ou par adresse IP pour les visiteurs.
- **Upload de Fichier :**
    Possibilité d'attacher un fichier à un commentaire (taille maximale : 10MB).
- **Support Emoji :**
    Ajoutez des emojis facilement dans votre commentaire grâce à un sélecteur intégré (basé sur AlpineJS).
- **Livewire &amp; Réactivité :**
    Mise à jour en temps réel sans rechargement de page.

Installation
------------

[](#installation)

1. **Via Composer**

    Ajoutez le package à votre projet Laravel :

    ```
    composer require maximeetundi/openwirecomment
    ```
2. **Publication des Assets**

    Publiez les vues (et éventuellement d'autres fichiers comme la config si vous en ajoutez) :

    ```
    php artisan vendor:publish --provider="MaximeEtundi\OpenWireComment\OpenWireCommentServiceProvider" --tag=views
    ```
3. **Exécutez les Migrations**

    Pour créer les tables nécessaires dans votre base de données :

    ```
    php artisan migrate
    ```

Utilisation
-----------

[](#utilisation)

### 1. Associer le Trait à un Modèle

[](#1-associer-le-trait-à-un-modèle)

Pour intégrer le système de commentaires à n'importe quel modèle Eloquent (par exemple, un modèle `Article`), ajoutez le trait `HasOpenWireComments` à votre modèle.

**Exemple :**

```
namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use MaximeEtundi\OpenWireComment\Traits\HasOpenWireComments;

class Article extends Model
{
    use HasOpenWireComments;

    // Vos autres propriétés et méthodes...
}
```

Ce trait ajoute une méthode nommée `openwireComments()` qui permet d'accéder aux commentaires liés à l'instance du modèle :

```
$article = Article::find(1);
$comments = $article->openwireComments; // Récupère tous les commentaires associés à cet article
```

### 2. Intégrer le Composant Livewire dans une Vue

[](#2-intégrer-le-composant-livewire-dans-une-vue)

Le package fournit un composant Livewire pour gérer l'affichage et la gestion des commentaires en temps réel.

**Exemple dans une vue Blade :**

```

{{ $article->title }}
{{ $article->content }}

```

Le composant se charge de :

- Afficher les commentaires existants (y compris les réponses imbriquées).
- Gérer l'ajout de nouveaux commentaires avec le support d'upload de fichier, d'emojis, et la gestion des utilisateurs authentifiés/non authentifiés.
- Permettre l'ajout de likes pour chaque commentaire.

### 3. Personnalisation et Extensibilité

[](#3-personnalisation-et-extensibilité)

- **Vues Personnalisées :**
    Les vues se trouvent dans le dossier `resources/views/vendor/openwirecomment` (après publication). Vous pouvez les modifier pour adapter l'interface à vos besoins.
- **Configuration et Validation :**
    Vous pouvez ajuster la taille maximale du fichier ou d'autres règles de validation directement dans le composant Livewire (`OpenWireComment.php`).
- **Réponses et Autres Fonctionnalités :**
    Le package est conçu pour être extensible. Vous pouvez ajouter des fonctionnalités telles que la pagination, l'édition ou la suppression des commentaires en modifiant le composant ou en étendant le trait.

Exemple Complet d'Utilisation
-----------------------------

[](#exemple-complet-dutilisation)

1. **Ajout du Trait dans le Modèle :**

    ```
    // App/Models/Article.php
    namespace App\Models;

    use Illuminate\Database\Eloquent\Model;
    use MaximeEtundi\OpenWireComment\Traits\HasOpenWireComments;

    class Article extends Model
    {
        use HasOpenWireComments;

        // ...
    }
    ```
2. **Utilisation du Composant Livewire dans la Vue :**

    ```

    {{ $article->title }}
    {{ $article->content }}

    ```
3. **Accès aux Commentaires dans le Code :**

    ```
    $article = Article::find(1);
    // Accès aux commentaires via le trait
    $comments = $article->openwireComments()->with('replies')->get();
    ```

Contribution
------------

[](#contribution)

Les contributions sont les bienvenues !
Si vous souhaitez contribuer à **openwirecomment**, merci de :

1. Forker le dépôt.
2. Créer une branche pour votre fonctionnalité (`git checkout -b feature/nom-de-la-fonctionnalite`).
3. Commiter vos changements.
4. Envoyer une Pull Request.

Licence
-------

[](#licence)

Ce package est sous licence **MIT**.
Pour plus d'informations, consultez le fichier [LICENSE](LICENSE).

---

N'hésitez pas à poser vos questions ou à signaler des bugs via [GitHub Issues](https://github.com/maximeetundi/openwirecomment/issues).

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/755cad5e7e166531a027b90bbf176ec31ec34004194fcf7e2b2811a4f907ab87?d=identicon)[maximeetundi](/maintainers/maximeetundi)

---

Top Contributors

[![maximeetundi](https://avatars.githubusercontent.com/u/168931399?v=4)](https://github.com/maximeetundi "maximeetundi (6 commits)")

### Embed Badge

![Health badge](/badges/maximeetundi-openwirecomment/health.svg)

```
[![Health](https://phpackages.com/badges/maximeetundi-openwirecomment/health.svg)](https://phpackages.com/packages/maximeetundi-openwirecomment)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
