PHPackages                             pistol88/yii2-work-session - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. pistol88/yii2-work-session

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

pistol88/yii2-work-session
==========================

yii2-work-session ведет учет прихода и ухода сотрудников на работу

11792PHP

Since Apr 25Pushed 9y ago3 watchersCompare

[ Source](https://github.com/pistol88/yii2-work-session)[ Packagist](https://packagist.org/packages/pistol88/yii2-work-session)[ RSS](/packages/pistol88-yii2-work-session/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Yii2-work-session
=================

[](#yii2-work-session)

Модуль предоставляет интерфейс для ведения учета рабочих смен сотрудников, а также организации в целом. Есть возможность планировать график и контролировать рабочие смены.

[![work session](https://cloud.githubusercontent.com/assets/8104605/16575746/fd85769c-42a3-11e6-9385-fa5f3b59bb33.png)](https://cloud.githubusercontent.com/assets/8104605/16575746/fd85769c-42a3-11e6-9385-fa5f3b59bb33.png)

Фиксируется начало всей смены, время прихода и ухода каждого сотрудника, рассчитывается время фактического нахождения на рабочем месте.

Установка
---------

[](#установка)

Выполнить команду

```
php composer require pistol88/yii2-work-session "*"

```

Или добавить в composer.json

```
"pistol88/yii2-work-session": "*",

```

И выполнить

```
php composer update

```

Далее, мигрируем базу:

```
php yii migrate --migrationPath=vendor/pistol88/yii2-work-session/migrations

```

Подключение и настройка
-----------------------

[](#подключение-и-настройка)

В конфигурационный файл приложения добавить модуль worksess, настроив его

```
    'modules' => [
        //...
        'worksess' => [
            'class' => 'pistol88\worksess\Module',
            'adminRoles' => ['administrator'],
            //модуль пользователей
            'userModel' => 'common\models\User',
            //Перечень смен
            'shifts' => [
                '07:00' => 'Дневная смена',
                '19:00' => 'Ночная смена',
            ],
            //кол-во часов в смене
            'hoursCount' => 12,
            //callback функция, позвращающая список работников
            'workers' => function() {
                return \common\models\User::findAll(['status' => 2, 'id' => Yii::$app->authManager->getUserIdsByRole(['washer'])]);
            },
        ],
        //...
    ]
```

В модели пользователя подключить поведение pistol88\\worksess\\AttachSession, чтобы получать время работы через $user-&gt;getSessionTime($date)

Управление сессиями по роуту: worksess/session/current.

Управление расписанием выхода сотрудников по роуту: worksess/session/current.

Виджеты
-------

[](#виджеты)

```

```

Информация об общей смене сменой:

```

```

Информация о смене сотрудника ($worker - модель пользователя):

```

```

Кнопки переключения старта\\остановки общей сессии и сессии отдельного сотрудника (если передано свойство $worker):

```

```

Вывод визуализации рабочего дня сотрудников

```

```

Триггеры
--------

[](#триггеры)

В момент создания и завершения сессии можно выполнять какие-либо пользовательские сценарии, вынесенные в конфиг:

'components' =&gt; \[ 'worksess' =&gt; \[ 'class' =&gt; 'pistol88\\worksess\\Session', 'on start' =&gt; function($event) { //Сессия - $event-&gt;model; }, 'on stop' =&gt; function($event) { //Сессия - $event-&gt;model; } \], \]

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 91.8% 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://avatars.githubusercontent.com/u/8104605?v=4)[pistol88](/maintainers/pistol88)[@pistol88](https://github.com/pistol88)

---

Top Contributors

[![pistol88](https://avatars.githubusercontent.com/u/8104605?v=4)](https://github.com/pistol88 "pistol88 (45 commits)")[![halumein](https://avatars.githubusercontent.com/u/5361342?v=4)](https://github.com/halumein "halumein (3 commits)")[![usesgraphcrt](https://avatars.githubusercontent.com/u/17561572?v=4)](https://github.com/usesgraphcrt "usesgraphcrt (1 commits)")

### Embed Badge

![Health badge](/badges/pistol88-yii2-work-session/health.svg)

```
[![Health](https://phpackages.com/badges/pistol88-yii2-work-session/health.svg)](https://phpackages.com/packages/pistol88-yii2-work-session)
```

PHPackages © 2026

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