Customizations

You may want to do your own customizations and modifications on the code such as the views or the controllers to add a new feature for example ... etc. so, all you need is to publish the required asset mentioned below and start your own customizations!

Package's assets

  • config

  • views

  • assets (js, css, imgs)

  • models

  • migrations

  • controllers

The following assets already been published during the installation process:

config, views, assets, models, migrations

only the controllers asset is not published until you do.

Publishing the assets

When you need to publish an asset, all you need is to run the following command :

php artisan vendor:publish --tag=chatify-<asset-name>

Change<asset-name> with the required asset name (e.g. config) to be like chatify-config

Controllers

You may want to do some modifications on the controllers of this package, so you need to follow the steps below:

  1. Publish controllers asset

php artisan vendor:publish --tag=chatify-controllers

2. Go to config/chatify.php and from routes properties, change namespace to App\Http\Controllers\vendor\Chatify to be like the following:

config/chatify.php
...
'namespace' => env('CHATIFY_ROUTES_NAMESPACE', 'App\Http\Controllers\vendor\Chatify'),

same for api_routes, change the namespace to App\Http\Controllers\vendor\Chatify\Api

config/chatify.php
... 
'namespace' => env('CHATIFY_API_ROUTES_NAMESPACE', 'App\Http\Controllers\vendor\Chatify\Api').

3. Go to app/Http/Controllers/vendor/Chatify and open MessagesController.php with your code editor .. then change the namespace to the same namespace specified in the step 2 above ..

the same for Api\MessagesController.php .

Thats all you need to do.

Now, You can work with package's controller and start your modifications.

Custom Chatify Class

When you want to override a method in ChatifyMessenger.php which is the main class of Chatify, then you have to follow the steps below:

  • Create a class in your Laravel application (e.g. CustomChatify.php).

  • inside your class, extend Chatify/ChatifyMessenger

// CustomChatify.php

<?php

//...
use Chatify\ChatifyMessenger

class CustomChatify extends ChatifyMessenger{

    // Here, override the methods you want. 
    // For example:
    public function fetchMessage($id, $index = null)
    {
        //...
    }
}
  • Use your custom class CustomChatify at MessegesController.php for both web and api controllers if needed, instead of Chatify:

// MessagesController.php
<?php
namespace App\Http\Controllers\vendor\Chatify;

//...
use Chatify\Facades\ChatifyMessenger as Chatify; // instead of this (remove it)
use Path\To\CustomChatify as Chatify; // use this (yours), use the right path/namespace to your custom class.
//...

class MessagesController extends Controller
{
//...
}

Other Customizations

other customization such as

  • Messenger name.

  • Messenger colors.

  • Messenger Max upload size.

  • Messenger avatar.

can be done by the configurations section.

Last updated