• Czas czytania ~1 min
  • 05.06.2025

Laravel ulepsza dopasowywanie wzorców ciągów, dodając obsługę bez uwzględniania wielkości liter do metody Str::is, zapewniając bardziej elastyczne i przyjazne dla użytkownika porównania ciągów z wzorcami wieloznacznymi.

Ulepszona metoda Str::is akceptuje trzeci parametr do dopasowywania bez uwzględniania wielkości liter:

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

To ulepszenie okazuje się szczególnie cenne w systemach zarządzania treścią:

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';
    }
}

Opcja bez uwzględniania wielkości liter w Str::is tworzy bardziej niezawodne dopasowywanie wzorców, eliminując problemy z rozróżnianiem wielkości liter, dzięki czemu aplikacje są bardziej przyjazne dla użytkownika, zachowując jednocześnie potężną funkcjonalność symboli wieloznacznych.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297

Codziennie zestrzeliwujemy „Shahedy”. Za każdym razem to uratowane życie. Potrzebujemy mobilności: busa lub przyczepy. Każda wpłata = kolejna noc pod ochroną.

🚐 Zbiórka na busa dla zespołu, pułk 1020 🎯 Cel: 500 000 ₴
🔗 Link do zbiórkiі 💳 4441 1111 2546 4663