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 створює більш надійне зіставлення шаблонів, усуваючи проблеми чутливості до регістру, роблячи програми більш зручними для користувача, зберігаючи при цьому потужну функціональність узагальнення.