2017 © Pedro Peláez
 

yii2-extension yii2-simplechat

A simple chat for your yii2 application

image

gofmanaa/yii2-simplechat

A simple chat for your yii2 application

  • Tuesday, May 31, 2016
  • by gofmanaa
  • Repository
  • 1 Watchers
  • 0 Stars
  • 39 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 31 Forks
  • 0 Open issues
  • 6 Versions
  • 15 % Grown

The README.md

Yii2 Simple Chat

A simple chat for your yii2 application, (*1)

Installation

The preferred way to install this extension is through composer., (*2)

Either run, (*3)

php composer.phar require --prefer-dist gofmanaa/yii2-simplechat

or add, (*4)

   "gofmanaa/yii2-simplechat": "~2.0",

to the require section of your composer.json file., (*5)

Demo only

Once the extension is installed, simply modify your application configuration as follows:, (*6)

return [
    'bootstrap' => ['simplechat'],
    'modules' => [
        'simplechat' => [
            'class' => 'bubasuma\simplechat\Module',
        ],
        // ...
    ],
    // ...
];

Use the same configuration for your console application:, (*7)

Note: You need this configuration to access simple chat via command line. You can remove it in production mode., (*8)

You can access Simple Chat via command line as follows:, (*9)

# change path to your application's base path
cd path/to/AppBasePath

# show available commands
php yii simplechat

# create test tables, generates and load fixtures
php yii simplechat/start

# unload fixtures
php yii simplechat/clean

# unload fixtures and load them again
php yii simplechat/reset

# unload fixtures and drop test tables
php yii simplechat/stop

You can specify different options of the start and reset command:, (*10)

# You can specify how many fixtures per user and message you need by the --users and --messages options
php yii simplechat/start --users=50 --messages=10000
php yii simplechat/reset --users=20 --messages=5000

# You can specify in what language to generate fixtures by the --language option. Thanks to yii2-faker
php yii simplechat/start --language="ru_RU"
php yii simplechat/reset --language="fr_FR"

You can then access Simple Chat through the following URL:, (*11)

http://localhost/path/to/index.php?r=messages/2

or if you have enabled pretty URLs, you may use the following URL:, (*12)

http://localhost/path/to/index.php/messages/2

You should see the below:, (*13)

yii simple chat demo page, (*14)

If not, please check if demo migration has been successfully applied against your database. You can check it by running the following command:, (*15)

php yii simplechat/start

Note: the command above is accessible only if you have configured your console application as it is recommended above., (*16)

Usage

Create an ActiveRecord like follow:, (*17)

namespace common\models;

//...
use bubasuma\simplechat\db\Model;
use common\models\User;
use yii\db\ActiveQuery;
//...

class Message extends Model
{
    public function getContact()
    {
        return $this->hasOne(User::className(), ['id' => 'contact_id']);
    }

    /**
     * @inheritDoc
     */
    public static function conversations($userId)
    {
        return parent::conversations($userId)->with([
            //...
            'contact' => function ($contact) {
                /**@var $contact ActiveQuery * */
                $contact->with([
                    //...
                ])->select(['id', ]);
            },
            //...
        ]);
    }
}

Create a controller like follow:, (*18)

namespace frontend\controllers;

//...
use yii\web\Controller;
use yii\helpers\StringHelper;
use common\models\Message;
use bubasuma\simplechat\controllers\ControllerTrait;
//...

class MessageController extends Controller
{
    use ControllerTrait;

    /**
     * @return string
     */
    public function getModelClass()
    {
        return Message::className();
    }

    /**
     * @inheritDoc
     */
    public function formatMessage($model)
    {
        //...
        return $model;
    }

    /**
     * @inheritDoc
     */
    public function formatConversation($model)
    {
        //...
        $model['text'] = StringHelper::truncate($model['text'], 20);
        //...
        return $model;
    }
}

Note: If you are using this extension in your frontend application, you can find the usage of widgets in index.twig., (*19)

FAQ

Does this extension work with any template engines other than twig?, (*20)

Yes. Given that, the default render in yii2 is php, you must indicate explicitly the extension part in view names., (*21)

Can I use this extension in a RESTful APIs?, (*22)

Yes, You can., (*23)

Can I use different template engines for rendering in server side and client side?, (*24)

Yes. But using the same template in both sides remains the best implementation., (*25)

The Versions

31/05 2016

dev-master

9999999-dev

A simple chat for your yii2 application

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Buba Suma

extension yii2 message chat conversation

31/05 2016

v2.0.1

2.0.1.0

A simple chat for your yii2 application

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Buba Suma

extension yii2 message chat conversation

01/05 2016

v2.0.0

2.0.0.0

A simple chat for your yii2 application

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Buba Suma

extension yii2 message chat conversation

24/01 2016

v2.0.0-alpha

2.0.0.0-alpha

A simple chat for your yii2 application

  Sources   Download

BSD-3-Clause

The Requires

 

by Buba Suma

extension yii2 message chat conversation

23/01 2016

v1.0.0

1.0.0.0

A simple chat for your yii2 application

  Sources   Download

BSD-3-Clause

The Requires

 

by Buba Suma

extension yii2 message chat conversation

13/12 2015

v1.0.0-rc

1.0.0.0-RC

A simple chat for your yii2 application

  Sources   Download

BSD-3-Clause

The Requires

 

by Buba Suma

extension yii2 message chat conversation