PHPackages                             dmitrybtn/yii2-yimp - 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. [Admin Panels](/categories/admin)
4. /
5. dmitrybtn/yii2-yimp

ActiveYii2-extension[Admin Panels](/categories/admin)

dmitrybtn/yii2-yimp
===================

Dashboard for the Yii framework based on Bootstrap 4

1.0.0(6y ago)146672MITPHP

Since Nov 5Pushed 6y ago2 watchersCompare

[ Source](https://github.com/dmitrybtn/yii2-yimp)[ Packagist](https://packagist.org/packages/dmitrybtn/yii2-yimp)[ RSS](/packages/dmitrybtn-yii2-yimp/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

YIMP - Панель управления для Yii 2 на Bootstrap 4
-------------------------------------------------

[](#yimp---панель-управления-для-yii-2-на-bootstrap-4)

### Концепция

[](#концепция)

YIMP - это панель управления, предназначенная для быстрого создания пользовательского интерфейса. Это не готовая админка, не CMS и даже не CMF. Код представлений нужно писать самостоятельно или с использованием Gii (шаблоны прилагаются).

YIMP представляет собой лейаут, адаптированный для мобильных устройств и включающий в себя заголовок приложения, заголовок страницы, хлебные крошки, три меню (верхнее, левое и правое) а также виджеты в боковых панелях. Эти свойства настраиваются в контроллерах и передаются в лейаут через специальный объект - навигатор.

Полезные ссылки: [Live demo](http://yimp.ru), [API documentation](http://yimp.ru/api/).

### Установка через Composer

[](#установка-через-composer)

Предпочтительным способом установки YIMP является Composer. Для установки введите введите в командной строке:

```
php composer.phar require dmitrybtn/yii2-yimp:"~1.0.0"
```

или добавьте

```
"dmitrybtn/yii2-yimp": "~1.0.0"

```

в секцию **require** вашего `composer.json`.

### Быстрый старт

[](#быстрый-старт)

#### Подключение лейаута

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

Лейаут хранится в папке `vendor/dmitrybtn/yii2-yimp/views/layout`. Для подключения лейаута **рекомендуется скопировать его код в приложение**. Тем не менее, в простейших случаях можно подключить лейаут из пакета, для этого в настройках приложения нужно указать:

```
'layout' => '@dmitrybtn/yimp/views/layout',
```

#### Подключение навигатора

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

В приложении необходимо определить класс, унаследованный от [\\dmitrybtn\\yimp\\Navigator](http://yimp.ru/api/dmitrybtn-yimp-navigator.html). Этот класс будет использоваться для передачи данных из контроллера в лейаут. Он включает в себя набор свойств (полный перечень лучше посмотреть в API документации), которые задаются в контроллере и выводятся в лейауте. Унаследовав этот класс в своем приложении, рекомендуется сразу настроить меню, которые не будут зависеть от конкретного действия. Например, так:

```
namespace app\components;

class Navigator extends \dmitrybtn\yimp\Navigator
{
    public function init()
    {
        parent::init();

        $this->menuLeft = [
            ['label' => 'Main menu'],
            ['label' => 'About', 'url' => ['/site/about']],
        ];
    }
}
```

В контроллере нужно определить свойство `nav`, являющееся объектом класса Navigator. В действиях контроллера нужно настроить своство `nav` желаемым образом. Например, так:

```
class SiteController extends \yii\web\Controller
{
    public $nav;

    public function init()
    {
        parent::init();

        $this->nav = new Navigator();
    }

    public function actionAbout()
    {
        $this->nav->title = 'About';

        ...
    }
}
```

#### Подключение Gii

[](#подключение-gii)

В состав YIMP входят шаблоны для CRUD и контроллеров. Для их подключения в настройках приложения нужно указать:

```
    'modules' => [
        ...
        'gii' => [
             'class' => 'yii\gii\Module',
             'allowedIPs' => ['127.0.0.1', '::1'],
             'generators' => [
                 'crud' => [
                     'class' => 'yii\gii\generators\crud\Generator',
                     'templates' => [
                         'yimp' => '@dmitrybtn/yimp/gii/crud'
                     ]
                 ],
                 'controller' => [
                     'class' => 'yii\gii\generators\controller\Generator',
                     'templates' => [
                         'yimp' => '@dmitrybtn/yimp/gii/controller'
                     ]
                 ]
             ],
        ...
    ]
```

Эти шаблоны переопределяют шаблоны, используемые Gii по умолчанию, причем изменения были по возможности минимальными. При необходимости, вы можете переопределить эти шаблоны согласно документации на Gii.

#### Подключение ErrorAction

[](#подключение-erroraction)

В состав YIMP входит ErrorAction, который можно подключить согласно [соответствующему разделу документации на Yii](https://www.yiiframework.com/doc/guide/2.0/ru/runtime-handling-errors#using-error-actions).

### Рекомендации

[](#рекомендации)

Левое меню рекомендуется использовать как главное меню приложения. Верхнее меню - для опций текущего пользователя (логин, логаут, настройки профиля). Правое меню - для опций текущего действия (например, для действия View там будут пункты Update и Delete). Левое и верхнее меню рекомендуется настроить в вашей реализации класса Navigator, а правое меню - в коде действий.

Заголовки действий и хлебные крошки рекомендуется определять через статические методы контроллеров. Например, так:

```
class OrderController extends \yii\web\Controller
{
    public $nav;

    public function init()
    {
        parent::init();

        $this->nav = new Navigator();
    }

    public static function titleIndex()
    {
        return 'Заказы';
    }

    public static function titleView($order)
    {
        return 'Заказ № ' . $order->id;
    }

    public static function crumbsToIndex()
    {
        return [
            ['label' => static::titleIndex(), 'url' => ['index']]
        ];
    }

    public function actionIndex()
    {
        ...

        $this->nav->title = static::titleIndex();

        ...
    }

    public function actionView()
    {
        ...

        $this->nav->title = static::titleView();
        $this->nav->crumbs = static::crumbsToIndex();

        ...
    }

}
```

В этом примере класс OrderController отвечает за заказы. Действие order/index будет имеет заголовок "Заказы". Логично, что слово "Заказы" также должно быть пунктом главного меню приложения, а также частью хлебных крошек для других действий. Как видите, это слово можно получить из любого места приложения, вызвав метод `OrderController::titleIndex()`.

Аналогично с хлебными крошками. Например, если появляется класс ItemController, отвечающий за товары в заказе, то действие `item/create` может иметь хлебные крошки "Главная / Заказы / Заказ № 1 / Добавить товар". Для формирования таких хлебных крошек в классе ItemController достаточно будет вызвать `$this->nav->crumbs = OrderController::crumbsToView($item->order)`.

Подобный подход реализован в шаблонах Gii, входящих в состав YIMP.

### Дополнительно

[](#дополнительно)

#### Виджеты

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

Свободное место в футере и боковых панелях может быть использовано для виджетов. Если вам нужно вывести виджет только для одного действия, вы можете в представлении для этого действия определить [блок](https://www.yiiframework.com/doc/guide/2.0/ru/structure-views#using-blocks):

```

        Caption
        Your widget HTML

```

Для использования блоков в YIMP определены константы `Yimp::SIDEBAR_LEFT`, `Yimp::SIDEBAR_RIGHT`, `Yimp::FOOTER`.

Обратите внимание, что боковые панели с виджетами отображаются только на больших экранах (xl). Для меньших экранов рекомендуется переопределить виджеты подобно тому, как это сделано для [элементов управления формой](https://github.com/dmitrybtn/yii2-yimp/blob/master/src/widgets/views/controls.php).

#### Иконки

[](#иконки)

Поскольку Bootstrap 4 не поддерживает иконки, в YIMP используются иконки от [FontAwesome](https://fontawesome.com/icons). Они подключаются в момент регистрации ресурсов YIMP, поэтому вы можете использовать их в своем приложении согласно документации к FontAwesome.

#### Меню

[](#меню)

Для настройки левого, правого и верхнего меню используются свойства навигатора `menuLeft`, `menuRight` и `menuTop`. В этих свойствах необходимо указать настройки для свойства [yiisoft/bootstrap4/Nav::items](https://www.yiiframework.com/extension/yiisoft/yii2-bootstrap4/doc/api/2.0/yii-bootstrap4-nav#$items-detail), например так:

```
    public function actionIndex()
    {
        ...

        $this->nav->menuRight = [
            ['label' => 'Options'],
            ['label' => static::titleCreate(), 'url' => ['create']],
        ];

        ...
    }
```

Помимо известных настроек, могут быть указаны также следующие настройки:

- `active`: В оригинальном виджете он имеет тип bool. В YIMP можно также использовать строку, соответствующую маске маршрута. Например, если для главного меню указать `'active' => 'order/*'`, пункт будет активен для любого действия из OrderController. Подробности см. [MenuAdapter](http://yimp.ru/api/dmitrybtn-yimp-menuadapter.html), [RouteHelper](http://yimp.ru/api/dmitrybtn-yimp-routehelper.html).
- `visibleMode`: YIMP рендерит каждое меню дважды - для десктопов и для мобильных устройств. Если вы хотите вывести элемент только для одного типа устройств, укажите здесь `Yimp::DESKTOP` или `YIMP::MOBILE`. Обратите внимание, что эта настройка никак не связана с CSS.

#### Стилизация

[](#стилизация)

YIMP написан с расчетом на максимальное использование возможностей Bootstrap 4. Все, что можно было сделать классами Bootstrap 4, сделано именно так. Тем не менее, для части элементов пришлось определять собственные стили, которые используют переменные Bootstrap 4 в основном для определения цветов. Стили Yimp хранятся в файле vendor\\dmitrybtn\\yii2-yimp\\assets\\css\\yimp.scss.

Если вы решите использовать собственную таблицу стилей, то нужно [отключить стили Bootstrap](https://www.yiiframework.com/extension/yiisoft/yii2-bootstrap4/doc/guide/2.0/ru/topics-sass)и стили Yimp, указав в настройках приложения:

```
    'assetManager' => [
        'bundles' => [
            'yii\bootstrap4\BootstrapAsset' => [
                'css' => [],
            ],
            'dmitrybtn\yimp\Asset' => [
                'css' => [],
            ]
        ]
    ]
```

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90.9% 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2422d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/077d4ca133c77a7ac1a382a61fb5daebcc84a6ba71b19e1394209e1238d96ed7?d=identicon)[dmitrybtn](/maintainers/dmitrybtn)

---

Top Contributors

[![dmitrybtn](https://avatars.githubusercontent.com/u/33543307?v=4)](https://github.com/dmitrybtn "dmitrybtn (10 commits)")[![andrew-demb](https://avatars.githubusercontent.com/u/12499813?v=4)](https://github.com/andrew-demb "andrew-demb (1 commits)")

---

Tags

bootstrap4yiiyii2yii2bootstrapdashboardbootstrap4

### Embed Badge

![Health badge](/badges/dmitrybtn-yii2-yimp/health.svg)

```
[![Health](https://phpackages.com/badges/dmitrybtn-yii2-yimp/health.svg)](https://phpackages.com/packages/dmitrybtn-yii2-yimp)
```

###  Alternatives

[deyraka/yii2-material-dashboard

Material Dashboard Theme for Yii 2.0

121.9k](/packages/deyraka-yii2-material-dashboard)[cornernote/yii2-dashboard

Dashboard manager for Yii2

344.3k](/packages/cornernote-yii2-dashboard)

PHPackages © 2026

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