sashagm/cpu

CPU Sniffer Laravel +10.x

2.10.1 2023-12-07 17:22 UTC

This package is auto-updated.

Last update: 2024-04-07 18:26:32 UTC


README

Laravel Logo

Total Downloads Latest Stable Version License Code size Code size

PHP Version Laravel Version

CPU Sniffer

CPU Sniffer - это пакет для Laravel, который позволяет управлять ЧПУ (человекопонятными ссылками) в вашем приложении. Он использует функционал Laravel Route bind для определения, какой параметр использовать в URL: SLUG или ID. А так же вы можете быстро переключаться между режимами и выводить уникальные ссылки вашим пользователям.

Оглавление:

Требования

Основные требования для установки и корректной работы:

  • PHP >= 8.0
  • Laravel >= 10.x
  • Composer >= 2.4.x

Установка

  • composer require sashagm/cpu
  • php artisan cpu:install

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

После установки пакета, вам необходимо выполнить следующие шаги:

  1. В конфигурационном файле /config/cfg.php определите параметры cpu_url и routes.
  2. В параметре cpu_url, который будет определять, какой тип ссылок будет использоваться.
  3. В параметре routes определите необходимые маршруты с указанием имени, модели и запроса.
  4. Запустите команду 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 - Данная команда установит все необходимые файлы.

Тестирование

Для проверки работоспособности можно выполнить специальную команду:

  • ./vendor/bin/phpunit --configuration phpunit.xml

Лицензия

CPU Sniffer - это программное обеспечение с открытым исходным кодом, лицензированное по MIT license.