PHPackages                             understeam/yii2-seo-toolbar - 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. understeam/yii2-seo-toolbar

AbandonedArchivedPackage

understeam/yii2-seo-toolbar
===========================

v0.3(10y ago)41741GPLv3CSS

Since Dec 4Pushed 10y ago6 watchersCompare

[ Source](https://github.com/Understeam/yii2-seo-toolbar)[ Packagist](https://packagist.org/packages/understeam/yii2-seo-toolbar)[ RSS](/packages/understeam-yii2-seo-toolbar/feed)WikiDiscussions master Synced today

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

Yii2 Seo Toolbar
================

[](#yii2-seo-toolbar)

This toolbar allows to easily configure title of page, meta tags or Open Graph tags on your website. It doesn't require any administration panel, it works right in the place (as Yii2 Debug Toolbar).

Requirements
------------

[](#requirements)

This extension requires Redis to be installed and configured as `redis` application component. The main model class relies on `yii\redis\ActiveRecord`

Installation
------------

[](#installation)

```
$ composer require understeam/yii2-seo-toolbar:0.3 --prefer-dist

```

Usage
-----

[](#usage)

At first, add toolbar to modules configuration and add it into application bootstrap:

```
...
'bootstrap' => ['seoToolbar'],
'modules' => [
    'seoToolbar' => [
        'class' => 'understeam\seotoolbar\Module',
        'permission' => 'seo', // permission to check
        'allowedIPs' => ['*'],
    ],
],
...
```

It is strongly recommended to use name `seoToobar` because it is hardcoded (yet).

Access control
--------------

[](#access-control)

At this step toolbar should appear if you are logged in and you have permission `seo`. Basically, module checks permissions with this method:

```
Yii::$app->user->can('seo');
```

So, if you are not using RBAC and access checks you can make toolbar visible for any logged in user:

```
...
'bootstrap' => ['seoToolbar'],
'modules' => [
    'seoToolbar' => [
        'class' => 'understeam\seotoolbar\Module',
        'permission' => '@', // allow to any logged in user
        'allowedIPs' => ['*'],
    ],
],
...
```

Also, you may want to show toolbar ALL users and check permissions via IP address:

```
...
'bootstrap' => ['seoToolbar'],
'modules' => [
    'seoToolbar' => [
        'class' => 'understeam\seotoolbar\Module',
        'permission' => null, // allow to any logged in user
        'allowedIPs' => ['127.0.0.1', '192.168.0.1'],
    ],
],
...
```

Url patterns and model attributes
---------------------------------

[](#url-patterns-and-model-attributes)

There is possibility to use a star (`*`) symbol to transform URL to regular expression:

[![Screenshot](https://camo.githubusercontent.com/96934e01692d426b57abe7c47257f969d27959ff88e42291fced85b95438b213/687474703a2f2f646e2e696d6167792e6d652f3230313531322f30342f63613636316264633038633234383930326332313761396665616139656666642e706e67)](https://camo.githubusercontent.com/96934e01692d426b57abe7c47257f969d27959ff88e42291fced85b95438b213/687474703a2f2f646e2e696d6167792e6d652f3230313531322f30342f63613636316264633038633234383930326332313761396665616139656666642e706e67)

Using SeoEntity behavior
------------------------

[](#using-seoentity-behavior)

Use SeoEntity class as a behavior for your models which attributes you want to use as a parameters in seo toolbar:

```
    public function behaviors()
    {
        return ArrayHelper::merge(parent::behaviors(), [
            'seo' => [
                'class' => 'understeam\seotoolbar\behaviors\SeoEntity',
                'attributes' => [
                    'name',
                    'slug',
                    'description'
                ],
            ],
        ]);
    }
```

[![Screenshot](https://camo.githubusercontent.com/77eeef7a7aa2595cb12cf35471ec7602ffb25d43eef7da7fb249f022b340d1ef/687474703a2f2f646e2e696d6167792e6d652f3230313531322f30342f31613665666664663432323062316534333437666539383631373266353030652e706e67)](https://camo.githubusercontent.com/77eeef7a7aa2595cb12cf35471ec7602ffb25d43eef7da7fb249f022b340d1ef/687474703a2f2f646e2e696d6167792e6d652f3230313531322f30342f31613665666664663432323062316534333437666539383631373266353030652e706e67)

###  Health Score

28

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

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

Every ~0 days

Total

3

Last Release

3761d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/099436b48c94b540d49cdaa3666cded03d69f7305686f98fc1701a710a9b6e4e?d=identicon)[AnatolyRugalev](/maintainers/AnatolyRugalev)

---

Top Contributors

[![AnatolyRugalev](https://avatars.githubusercontent.com/u/1397674?v=4)](https://github.com/AnatolyRugalev "AnatolyRugalev (11 commits)")

### Embed Badge

![Health badge](/badges/understeam-yii2-seo-toolbar/health.svg)

```
[![Health](https://phpackages.com/badges/understeam-yii2-seo-toolbar/health.svg)](https://phpackages.com/packages/understeam-yii2-seo-toolbar)
```

###  Alternatives

[fancyecommerce/fec

fancy ecommerce

2212.0k2](/packages/fancyecommerce-fec)

PHPackages © 2026

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