Активуйте гнучке порівняння шаблонів за допомогою регістронезалежного методу Str::is у Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 06 червня, 2025
У новій версії Laravel метод Str::is отримав підтримку нечутливого до регістру порівняння рядків, що робить його більш зручним для використання. Дізнайтеся, як це вдосконалення може спростити вашу роботу з шаблонами рядків і зробити ваш код ще ефективнішим

Laravel вдосконалює пошук за шаблоном у рядках, додаючи можливість нечутливого до регістру порівняння в методі Str::is, що робить порівняння рядків більш гнучким і зручним з використанням шаблонів.

Покращений метод Str::is приймає третій параметр для нечутливого до регістру порівняння:

use Illuminate\Support\Str;

// Просте порівняння рядків
Str::is('Admin', 'admin', true); // true

// Порівняння з шаблоном
Str::is('*.jpg', 'photo.JPG', true); // true

// Порівняння за префіксом
Str::is('SKU123*', 'sku12345', true); // true

// Користувацькі шаблони
Str::is('prd-001*', 'PRD-001-XYZ', true); // true

// Порівняння електронних адрес
Str::is('JOHN.DOE@example.com', 'john.doe@example.com', true); // true

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

class AssetManager
{
    protected array $imageFormats = ['jpg', 'png', 'gif', 'webp'];

    public function validateAsset(string $filename)
    {
        foreach ($this->imageFormats as $format) {
            if (Str::is("*.{$format}", $filename, true)) {
                return true;
            }
        }

        return false;
    }

    public function processMediaUploads(array $files)
    {
        return collect($files)->filter(function ($file) {
            // Пошук медіа-файлів (наприклад, MEDIA-*.*)
            return Str::is("MEDIA-*.*", $file, true);
        });
    }

    public function categorizeAsset(string $filename)
    {
        $categories = [
            'thumbnail' => 'THUMB-*.*',
            'banner' => 'BNR-*.*',
            'logo' => 'LOGO-*.*'
        ];

        foreach ($categories as $type => $pattern) {
            if (Str::is($pattern, $filename, true)) {
                return $type;
            }
        }

        return 'general';
    }
}

Опція нечутливого до регістру порівняння в Str::is забезпечує більш надійне співпадіння шаблонів, усуваючи проблеми з чутливістю до регістру, що робить програми дружніми до користувача, зберігаючи при цьому потужну функціональність шаблонів

Популярні

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel

Logomark Logotype

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом