CPU Sniffer - это пакет для Laravel, который позволяет управлять ЧПУ (человекопонятными ссылками) в вашем приложении. Он использует функционал Laravel Route bind для определения, какой параметр использовать в URL: SLUG или ID. А так же вы можете быстро переключаться между режимами и выводить уникальные ссылки вашим пользователям.
Основные требования для установки и корректной работы:
PHP
>= 8.0Laravel
>= 10.xComposer
>= 2.4.x
- composer require sashagm/cpu
- php artisan cpu:install
После установки пакета, вам необходимо выполнить следующие шаги:
- В конфигурационном файле
/config/cfg.php
определите параметрыcpu_url
иroutes
. - В параметре
cpu_url
, который будет определять, какой тип ссылок будет использоваться. - В параметре
routes
определите необходимые маршруты с указанием имени, модели и запроса. - Запустите команду
php artisan optimize
для обновления маршрутов.
Пример конфигурационного файла cfg.php:
return [
'cpu_url' => 1, // 1 - Режим slug, 0 - Режим id
'routes' => [
[
'name' => 'post', // Маршрут
'model' => 'App\Models\Post', // Модель
'query' => ['slug'] // Параметр для slug
],
[
'name' => 'user',
'model' => 'App\Models\User',
'query' => ['id']
]
]
];
В данном примере определены два маршрута: post и user
. Для маршрута post используется модель App\Models\Post
и параметр slug
в запросе, а для маршрута user - модель App\Models\User
и параметр id
в запросе.
Таким образом, мы можем добавлять новые роуты и соответствующие им модели в массив routes
в конфиге /config/cfg.php
, а метод boot()
будет автоматически биндить их при запуске приложения.
Итак, теперь наш функционал более гибкий и позволяет работать с различными типами ссылок.
Пример Route Items.
Route::get('/post/{post}', function (App\Models\Post $post) {
dump($post);
})->name('post');
Теперь при обращении к маршруту /posts/my-first-post
будет загружена модель Post
с полем slug
равным my-first-post
, если параметр cpu_url
установлен в значение 'slug'. Если же параметр cpu_url
равен 'id', то будет загружена модель с соответствующим идентификатором. Если параметр cpu_url
установлен в любое другое значение, будет выброшено исключение.
Наш пакет предоставляет ряд дополнительных возможностей, которые могут быть полезны при работе с чпу:
php artisan cpu:install
- Данная команда установит все необходимые файлы.