PHPackages                             bug32/yii2-static-url - 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. bug32/yii2-static-url

ActiveYii2-extension

bug32/yii2-static-url
=====================

Yii2 extension for managing static URLs with database storage and automatic URL routing

1.0.1(10mo ago)02MITPHPPHP &gt;=8.0.0

Since Jul 9Pushed 10mo agoCompare

[ Source](https://github.com/bug32/yii2-static-url)[ Packagist](https://packagist.org/packages/bug32/yii2-static-url)[ RSS](/packages/bug32-yii2-static-url/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (3)Used By (0)

Yii2 Static URL Extension
=========================

[](#yii2-static-url-extension)

Yii2-расширение для управления статическими URL с хранением в базе данных и автоматической интеграцией с маршрутизацией URL.

Возможности
-----------

[](#возможности)

- **Хранение в базе данных**: Сохраняет статические URL с контроллером, действием и параметрами.
- **Автоматическая маршрутизация**: Бесшовная интеграция с urlManager Yii2.
- **Кэширование**: Встроенное кэширование для оптимальной производительности.
- **Админка**: Полноценный CRUD-интерфейс для управления статическими URL.
- **Консольные команды**: Инструменты для управления через консоль.
- **Вспомогательные функции**: Удобные хелперы для создания статических URL.
- **SEO-дружелюбность**: Создание чистых, SEO-оптимизированных URL.
- **Гибкие параметры**: Поддержка JSON-параметров и query-строк.

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

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

### Через Composer

[](#через-composer)

```
composer require bug32/yii2-static-url
```

### Ручная установка

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

1. Скачайте расширение.
2. Распакуйте в директорию `extensions/` вашего проекта.
3. Добавьте в секцию autoload вашего composer.json:

```
{
    "autoload": {
        "psr-4": {
            "bug32\\staticUrl\\": "extensions/static-url/src/"
        }
    }
}
```

4. Выполните `composer dump-autoload`.

Конфигурация
------------

[](#конфигурация)

### Базовая настройка

[](#базовая-настройка)

Добавьте расширение в конфиг приложения:

```
// frontend/config/main.php или backend/config/main.php
return [
    'bootstrap' => [
        'staticUrl' => [
            'class' => 'bug32\\staticUrl\\StaticUrlExtension',
        ],
    ],
    // ... остальной конфиг
];
```

### Настройка для backend (опционально)

[](#настройка-для-backend-опционально)

Для административного интерфейса:

```
// backend/config/main.php
return [
    'modules' => [
        'static-url' => [
            'class' => 'bug32\\staticUrl\\StaticUrlExtension',
        ],
    ],
    // ... остальной конфиг
];
```

---

### Расширенная настройка

[](#расширенная-настройка)

Вы можете тонко настроить модуль для разных окружений:

```
// extensions/static-url/src/config.php
return [
    'components' => [
        'staticUrlRule' => [
            'class' => 'bug32\\staticUrl\\components\\StaticUrlRule',
            // 'cacheEnabled' => true,           // Включить/выключить кэширование
            // 'cacheDuration' => 3600,          // Время жизни кэша в секундах
            // 'autoClearCache' => true,         // Автоочистка кэша при изменениях
        ],
    ],
    'modules' => [
        'static-url' => [
            'class' => 'bug32\\staticUrl\\StaticUrlExtension',
            // 'adminRoute' => 'static-url/backend',
            // 'enableConsoleCommands' => true,  // Включить консольные команды
            // 'enableAdminInterface' => true,   // Включить админку
            // 'defaultStatus' => 10,            // Статус по умолчанию для новых URL
            // 'urlValidationPattern' => '/^[a-z0-9\-_\/]+$/',
        ],
    ],
];
```

#### Пример: Конфиг для production

[](#пример-конфиг-для-production)

```
// environments/prod/common/config/main.php
return [
    'bootstrap' => [
        'staticUrl' => [
            'class' => 'bug32\\staticUrl\\StaticUrlExtension',
            'enableAdminInterface' => false, // Отключить админку в проде
            'cacheEnabled' => true,
            'cacheDuration' => 7200, // 2 часа
        ],
    ],
];
```

#### Пример: Конфиг для разработки

[](#пример-конфиг-для-разработки)

```
// environments/dev/common/config/main.php
return [
    'bootstrap' => [
        'staticUrl' => [
            'class' => 'bug32\\staticUrl\\StaticUrlExtension',
            'enableAdminInterface' => true,
            'cacheEnabled' => false, // Отключить кэш для разработки
            'autoClearCache' => true,
        ],
    ],
];
```

#### Пример: Консольный конфиг

[](#пример-консольный-конфиг)

```
// console/config/main.php
return [
    'bootstrap' => [
        'staticUrl' => [
            'class' => 'bug32\\staticUrl\\StaticUrlExtension',
            'enableConsoleCommands' => true,
            'enableAdminInterface' => false,
        ],
    ],
];
```

#### Пример: интеграция с urlManager

[](#пример-интеграция-с-urlmanager)

```
// frontend/config/main.php
return [
    'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                // Статические URL будут добавлены автоматически в начало
                // Остальные правила остаются без изменений
                'posts/' => 'posts/view',
                'ships/' => 'ship/view',
            ],
        ],
    ],
];
```

---

#### Доступные параметры

[](#доступные-параметры)

- `enableAdminInterface` (bool) — Включить/выключить админку
- `enableConsoleCommands` (bool) — Включить/выключить консольные команды
- `adminRoute` (string) — Маршрут для админки
- `defaultStatus` (int) — Статус по умолчанию для новых URL
- `urlValidationPattern` (string) — Регулярка для проверки URL
- `cacheEnabled` (bool) — Включить/выключить кэширование
- `cacheDuration` (int) — Время жизни кэша в секундах
- `autoClearCache` (bool) — Автоочистка кэша при изменениях

---

Миграция базы данных
--------------------

[](#миграция-базы-данных)

Выполните миграцию для создания нужной таблицы:

```
php yii migrate --migrationPath=@vendor/bug32/yii2-static-url/migrations
```

Использование
-------------

[](#использование)

### В представлениях и контроллерах

[](#в-представлениях-и-контроллерах)

```
use bug32\staticUrl\helpers\StaticUrlHelper;

// Создать статический URL
$url = StaticUrlHelper::to('site/about'); // Вернет 'about-us'
$url = StaticUrlHelper::to('site/contact'); // Вернет 'contact'

// Создать абсолютный URL
$absoluteUrl = StaticUrlHelper::toAbsolute('site/about');

// Проверить, является ли URL статическим
if (StaticUrlHelper::isStaticUrl('about-us')) {
    echo 'Это статический URL';
}

// Получить маршрут по статическому URL
$route = StaticUrlHelper::getRouteForUrl('about-us'); // Вернет 'site/about'
```

### Консольные команды

[](#консольные-команды)

```
# Список всех статических URL
php yii static-url/index

# Очистить кэш
php yii static-url/clear-cache

# Создать статический URL
php yii static-url/create "about-us" "site" "about" "{}"

# Удалить статический URL
php yii static-url/delete 1
```

### Админка

[](#админка)

Админка доступна по адресу: `your-domain.com/static-url/backend/`

Структура базы данных
---------------------

[](#структура-базы-данных)

КолонкаТипОписаниеidintПервичный ключurlvarchar(255)Статический URL (уникальный)controllervarchar(100)Имя контроллераactionvarchar(100)Имя действияparamsjsonJSON-параметрыstatussmallintСтатус (10=активен, 0=неактивен)created\_attimestampДата созданияupdated\_attimestampДата обновленияПримеры
-------

[](#примеры)

### Базовый статический URL

[](#базовый-статический-url)

```
// Запись в базе
url: 'about-us'
controller: 'site'
action: 'about'
params: '{}'

// Использование
StaticUrlHelper::to('site/about'); // Вернет 'about-us'
```

### Статический URL с параметрами

[](#статический-url-с-параметрами)

```
// Запись в базе
url: 'post/123'
controller: 'posts'
action: 'view'
params: '{"id": 123}'

// Использование
StaticUrlHelper::to('posts/view', ['id' => 123]); // Вернет 'post/123'
```

### Статический URL с дополнительными параметрами

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

```
// Запись в базе
url: 'post/123'
controller: 'posts'
action: 'view'
params: '{"id": 123}'

// Использование
StaticUrlHelper::to('posts/view', ['id' => 123, 'tab' => 'details']);
// Вернет 'post/123?tab=details'
```

API
---

[](#api)

### StaticUrlHelper

[](#staticurlhelper)

#### `to(string $route, array $params = [], bool $scheme = false): string`

[](#tostring-route-array-params---bool-scheme--false-string)

Создает статический URL для указанного маршрута.

- `$route`: Маршрут контроллер/действие (например, 'site/about')
- `$params`: Дополнительные параметры
- `$scheme`: Создавать абсолютный URL

#### `toAbsolute(string $route, array $params = []): string`

[](#toabsolutestring-route-array-params---string)

Создает абсолютный статический URL.

#### `isStaticUrl(string $url): bool`

[](#isstaticurlstring-url-bool)

Проверяет, является ли указанный URL статическим.

#### `getRouteForUrl(string $url): ?string`

[](#getrouteforurlstring-url-string)

Получает маршрут для статического URL.

#### `getAllStaticUrls(): array`

[](#getallstaticurls-array)

Получает все активные статические URL.

### StaticUrl (модель)

[](#staticurl-модель)

#### `getParamsArray(): array`

[](#getparamsarray-array)

Получает параметры как массив.

#### `setParamsArray(array $params): void`

[](#setparamsarrayarray-params-void)

Устанавливает параметры из массива.

#### `getRoute(): string`

[](#getroute-string)

Получает полный маршрут (контроллер/действие).

#### `getStatusList(): array`

[](#getstatuslist-array)

Получает список доступных статусов.

Производительность
------------------

[](#производительность)

Расширение использует in-memory кэширование для статических URL для максимальной производительности. Кэш автоматически очищается при изменениях через админку или консольные команды.

Безопасность
------------

[](#безопасность)

- Валидация URL гарантирует, что разрешены только безопасные символы.
- Уникальность URL предотвращает дублирование.
- Статус позволяет временно отключать URL.
- JSON-параметры валидируются при сохранении.

Вклад
-----

[](#вклад)

1. Форкните репозиторий.
2. Создайте ветку для новой фичи.
3. Внесите изменения.
4. Добавьте тесты.
5. Оформите pull request.

Лицензия
--------

[](#лицензия)

Расширение распространяется под лицензией MIT. Подробнее см. [LICENSE](LICENSE).

Поддержка
---------

[](#поддержка)

- [Issues](https://github.com/bug32/yii2-static-url/issues)
- [Email](mailto:info@bug32.online)
- [Website](https://bug32.online)

Changelog
---------

[](#changelog)

### 1.0.0

[](#100)

- Первый релиз
- Базовая работа со статическими URL
- Админка
- Консольные команды
- Вспомогательные функции
- Поддержка кэширования

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance54

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

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

Unknown

Total

1

Last Release

310d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8187ec6b48f487435ef70d9eecad97616d8dd5a3ec7a8397c409456e6d91b7a9?d=identicon)[bug32](/maintainers/bug32)

---

Top Contributors

[![bug32](https://avatars.githubusercontent.com/u/5992376?v=4)](https://github.com/bug32 "bug32 (14 commits)")

---

Tags

routingyii2extensionstatic urlurl-managementseo-friendly-urls

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bug32-yii2-static-url/health.svg)

```
[![Health](https://phpackages.com/badges/bug32-yii2-static-url/health.svg)](https://phpackages.com/packages/bug32-yii2-static-url)
```

###  Alternatives

[skeeks/cms

SkeekS CMS — control panel and tools based on php framework Yii2

13825.6k47](/packages/skeeks-cms)[dmstr/yii2-cookie-consent

Yii2 Cookie Consent Widget

1452.6k](/packages/dmstr-yii2-cookie-consent)[richardfan1126/yii2-js-register

Yii2 widget to register JS into view

1357.2k7](/packages/richardfan1126-yii2-js-register)

PHPackages © 2026

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