• Время чтения ~1 мин
  • 05.06.2025

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

Улучшенный метод Str::is принимает третий параметр для сопоставления без учета регистра:

use Illuminate\Support\Str;
// Simple string matching
Str::is('Admin', 'admin', true); // true
// Wildcard pattern matching
Str::is('*.jpg', 'photo.JPG', true); // true
// Prefix matching
Str::is('SKU123*', 'sku12345', true); // true
// Custom patterns
Str::is('prd-001*', 'PRD-001-XYZ', true); // true
// Email matching
Str::is('[email protected]', '[email protected]', 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) {
            // Match media-specific files (e.g., 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 создает более надежное сопоставление шаблонов, устраняя проблемы с чувствительностью к регистру, делая приложения более удобными для пользователя, сохраняя при этом мощную функциональность подстановочных знаков.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297

Мы сбиваем «шахеды» каждый день. Каждое сбитие — спасённые жизни. Нам нужна мобильность: бус или прицеп. Каждый донат = ещё одна ночь под защитой.

🚐 Сбор на микроавтобус для моего экипажа, полк 1020 🎯 Цель: 500 000 ₴
🔗 Ссылка на банку 💳 4441 1111 2546 4663