• Час читання ~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