1. Go to this page and download the library: Download bug32/yii2-static-url library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
// frontend/config/main.php
return [
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
// Статические URL будут добавлены автоматически в начало
// Остальные правила остаются без изменений
'posts/<id:\d+>' => 'posts/view',
'ships/<slug>' => 'ship/view',
],
],
],
];
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: 'about-us'
controller: 'site'
action: 'about'
params: '{}'
// Использование
StaticUrlHelper::to('site/about'); // Вернет 'about-us'
// Запись в базе
url: 'post/123'
controller: 'posts'
action: 'view'
params: '{"id": 123}'
// Использование
StaticUrlHelper::to('posts/view', ['id' => 123]); // Вернет 'post/123'
// Запись в базе
url: 'post/123'
controller: 'posts'
action: 'view'
params: '{"id": 123}'
// Использование
StaticUrlHelper::to('posts/view', ['id' => 123, 'tab' => 'details']);
// Вернет 'post/123?tab=details'