Skip to content
This repository has been archived by the owner on May 8, 2023. It is now read-only.

usualdesigner/yii2-hitable-behavior

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hitable behavior for Yii2

Installation

Run command

composer require usualdesigner/yii2-hitable-behavior "dev-master"

or add

"usualdesigner/yii2-hitable-behavior": "dev-master"

to the require section of your composer.json file.

Main migration

$this->createTable('{{%hits}}', [
    'hit_id' => $this->primaryKey(),
    'user_agent' => $this->string()->notNull(),
    'ip' => $this->string()->notNull(),
    'target_group' => $this->string()->notNull(),
    'target_pk' => $this->string()->notNull(),
    'created_at' => $this->integer()->notNull(),
]);

Configuring

<?php

class Post extends \yii\db\ActiveRecord
{
    public function behaviors()
    {
        return [
            'hit' => [
                'class' => \usualdesigner\yii2\behavior\HitableBehavior::class(),
                'attribute' => 'hits_count',    //attribute which should contain uniquie hits value
                'group' => false,               //group name of the model (class name by default)
                'delay' => 60 * 60,             //register the same visitor every hour
                'table_name' => '{{%hits}}'     //table with hits data
                'db' => Yii::$app->db,          //cross DB connection (optional)
            ]
        ];
    }
}

Basic usage

$post = Post::findOne(1);

//increase counter
$post->getBehavior('hit')->touch();


//get hits count
echo $post->getBehavior('hit')->getHitsCount();

Tests

How to run the tests

About

The hit countable behavior for the Yii2 framework.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages