Перевірка відсутності рядка за допомогою методу doesnContain в Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 28 січня, 2025
Новий метод `doesntContain` у Laravel пропонує інтуїтивно зрозумілий спосіб перевірки відсутності певного контенту в рядках. Дізнайтеся, як цей метод може спростити валідацію рядків у вашому проєкті та покращити читабельність коду!

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