Новий метод doesntContain у Laravel пропонує інтуїтивний спосіб перевірки, чи не містять рядки певного контенту. Цей метод доповнює існуючий метод contains, забезпечуючи більш зрозумілий синтаксис для негативних перевірок.
use Illuminate\Support\Str;
// Основне використання
$text = "Welcome to Laravel";
$result = Str::doesntContain($text, 'PHP'); // true
// Множинні перевірки
$result = Str::doesntContain($text, ['PHP', 'Laravel']); // false
Ось практичний приклад реалізації служби фільтрації повідомлень:
<?php
namespace App\Services;
use App\Models\Message;
use Illuminate\Support\Str;
class MessageFilter
{
protected array $sensitiveTerms = [
'confidential',
'internal',
'classified'
];
public function isSafeForPublic(Message $message): bool
{
return Str::doesntContain(
strtolower($message->content),
$this->sensitiveTerms
);
}
public function processMessage(Message $message): array
{
if ($this->isSafeForPublic($message)) {
$message->update(['status' => 'published']);
return ['status' => 'success', 'message' => 'Повідомлення опубліковано'];
}
$message->update(['status' => 'review_required']);
return ['status' => 'pending', 'message' => 'Контент потребує перевірки'];
}
}
Метод doesntContain спрощує валідацію рядків у додатках Laravel, пропонуючи зрозумілий синтаксис для перевірки відсутності конкретного контенту. Чи то система модерації контенту, валідація введених даних чи фільтрація інформації, цей метод зменшує складність і покращує читабельність коду. У поєднанні з іншими допоміжними методами Laravel він стає частиною комплексного набору інструментів для ефективної маніпуляції рядками