PHPackages                             dericktan/chatter - 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. [Framework](/categories/framework)
4. /
5. dericktan/chatter

ActiveLibrary[Framework](/categories/framework)

dericktan/chatter
=================

A simple forum package for your laravel app

011PHP

Since Jul 19Pushed 5y agoCompare

[ Source](https://github.com/Dericktan/laravelforum)[ Packagist](https://packagist.org/packages/dericktan/chatter)[ RSS](/packages/dericktan-chatter/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Forum Package - Chatter
===============================

[](#laravel-forum-package---chatter)

### Installation

[](#installation)

Quick Note: If this is a new project, make sure to install the default user authentication provided with Laravel. `php artisan make:auth`

1. Include the package in your project

    ```
    composer require "dericktan/chatter=0.2.*"

    ```
2. Add the service provider to your `config/app.php` providers array:

    ```
    DerickTan\Chatter\ChatterServiceProvider::class,

    ```
3. Publish the Vendor Assets files by running:

    ```
    php artisan vendor:publish

    ```
4. Now that we have published a few new files to our application we need to reload them with the following command:

    ```
    composer dump-autoload

    ```
5. Run Your migrations:

    ```
    php artisan migrate

    ```

    Quick tip: Make sure that you've created a database and added your database credentials in your `.env` file.
6. Run the seed files to seed your database with a little data:

    ```
    php artisan db:seed --class=ChatterTableSeeder

    ```
7. Markdown editor

If you are going to make use of the markdown editor instead of tinymce you will need to change that in your config/chatter.php:

```
'editor' => 'simplemde',

```

In order to properly display the posts you will need to include the `graham-campbell/markdown` library for Laravel:

```
composer require graham-campbell/markdown

```

8. Open your editor and change Event::fire in vender/dericktan/chatter/src/Controllers/ChatterDiscussionController.php and vender/dericktan/chatter/src/Controllers/ChatterPostController.php to Event::dispatch.
9. Lastly, run

```
composer require laravel/helpers

```

Now, visit your site.com/forums and you should see your new forum in front of you!!!

---

### Customization

[](#customization)

*CUSTOM CSS*

If you want to add additional style changes you can simply add another stylesheet at the end of your `@yield('css')` statement in the head of your master file. In order to only load this file when a user is accessing your forums you can include your stylesheet in the following `if` statement:

```
@if(Request::is( Config::get('chatter.routes.home') ) || Request::is( Config::get('chatter.routes.home') . '/*' ))

@endif

```

*SEO FRIENDLY PAGE TITLES*

Since the forum uses your master layout file, you will need to include the necessary code in order to display an SEO friendly title for your page. The following code will need to be added to the `` of your master file:

```
@if( Request::is( Config::get('chatter.routes.home')) )
    Title for your forum homepage -  Website Name
@elseif( Request::is( Config::get('chatter.routes.home') . '/' . Config::get('chatter.routes.category') . '/*' ) && isset( $discussion ) )
    {{ $discussion->category->name }} - Website Name
@elseif( Request::is( Config::get('chatter.routes.home') . '/*' ) && isset($discussion->title))
    {{ $discussion->title }} - Website Name
@endif

```

*OVERRIDING VIEWS*

In order to override Chatter's built in views, simply create a `chatter` folder in your `vendor` views folder, i.e. `ROOT/resources/views/vendor/chatter`. Then simply drop in the Chatter view files you would like to override.

- [home.blade.php](https://github.com/thedericktan/chatter/blob/master/src/Views/home.blade.php)
- [discussion.blade.php](https://github.com/thedericktan/chatter/blob/master/src/Views/discussion.blade.php)

### Custom Function Hooks for the forum

[](#custom-function-hooks-for-the-forum)

Sometimes you may want to add some additional functionality when a user creates a new discussion or adds a new response. Well, there are a few built in functions that you can create in your script to access this functionality:

*Before User Adds New Discussion*Create a new global function in your script called:

```
function chatter_before_new_discussion($request, $validator){}

```

Note: that the `$request` object is passed with the user input for each webhook. You can use it if you would like :) If not, no worries just add your custom functionality.

*After User Adds New Discussion*Create a new global function in your script called:

```
function chatter_after_new_discussion($request){}

```

*Before User Adds New Response*Create a new global function in your script called:

```
function chatter_before_new_response($request, $validator){}

```

*After User Adds New Response*Create a new global function in your script called:

```
function chatter_after_new_response($request){}

```

### Laravel [Events](https://laravel.com/docs/events) for the forum

[](#laravel-events-for-the-forum)

This package provides a number of events allowing you to respond to user actions as they happen:

EventAvailable propertiesDescription`ChatterBeforeNewDiscussion``Illuminate\Http\Request ($request)`, `Illuminate\Validation\Validator ($validator)`This event is fired *before* a discussion is validated and created`ChatterAfterNewDiscussion``Illuminate\Http\Request ($request)`This event is fired *after* a discussion has been validated and created`ChatterBeforeNewResponse``Illuminate\Http\Request ($request)`, `Illuminate\Validation\Validator ($validator)`This event is fired *before* a response is validated and created`ChatterAfterNewResponse``Illuminate\Http\Request ($request)`This event is fired *after* a response is validated and created#### Listening for Events

[](#listening-for-events)

To register your listeners for these events, follow the [Laravel documentation for registering events and listeners](https://laravel.com/docs/events#registering-events-and-listeners). For example, to register a listener for the "before new discussion" event, add the following to your `EventServiceProvider`:

```
protected $listen = [
    'DerickTan\Chatter\Events\ChatterBeforeNewDiscussion' => [
        'App\Listeners\HandleNewDiscussion',
    ],
];
```

where `App\Listeners\HandleNewDiscussion` is a class in your application which handles the event when it's fired.

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 Bus Factor1

Top contributor holds 54.5% 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/85b53db71dea77c753d281f6b9a5f1c9984c0ceeaf56d3c1150ee2aee7efd327?d=identicon)[Dericktan](/maintainers/Dericktan)

---

Top Contributors

[![Dericktan](https://avatars.githubusercontent.com/u/16285179?v=4)](https://github.com/Dericktan "Dericktan (6 commits)")[![sudheerb9](https://avatars.githubusercontent.com/u/46934593?v=4)](https://github.com/sudheerb9 "sudheerb9 (5 commits)")

### Embed Badge

![Health badge](/badges/dericktan-chatter/health.svg)

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

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M192](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)

PHPackages © 2026

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