Компоненти URI-путі за допомогою методу pathSegments() у Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 07 травня, 2025
В Laravel з'явився метод pathSegments() для класу Uri, який спрощує доступ до компонентів шляху URI. Хочете дізнатися, як цей новий функціонал може покращити ваш код і зробити його більш читабельним? Читайте далі, щоб дізнатися про переваги використання цього простого, але потужного методу

Laravel представляє метод pathSegments() для класу Uri, що забезпечує елегантніший спосіб доступу та маніпулювання компонентами URI. Це нововведення спрощує роботу із сегментами шляху, пропонуючи зручний, колекційний інтерфейс.

Під час роботи з URL у веб-додатках часто виникає потреба виділяти конкретні сегменти. Раніше розробникам доводилося вручну розділяти рядок шляху та створювати колекцію. Тепер клас Uri в Laravel полегшує це за допомогою спеціального методу, який повертає компоненти шляху у вигляді готової до використання колекції:

use Illuminate\Support\Facades\Uri;

$uri = Uri::of('https://laravel.com/docs/11.x/validation');

// Отримати всі сегменти шляху як колекцію
$segments = $uri->pathSegments(); // ['docs', '11.x', 'validation']

// Доступ до специфічних сегментів за допомогою методів колекції
$firstSegment = $segments->first(); // 'docs'
$lastSegment = $segments->last(); // 'validation'
$secondSegment = $segments->get(1); // '11.x'

Поліпшення читабельності та зручності є суттєвими:

// До: ручне розділення рядка та створення колекції
$path = Uri::of('https://laravel.com/docs/11.x/validation')->path();
$segments = collect(explode('/', ltrim($path, '/')));
$firstSegment = $segments->first();

// Після: чистий і зручний підхід
$firstSegment = Uri::of('https://laravel.com/docs/11.x/validation')
    ->pathSegments()
    ->first();

Цей метод особливо корисний під час реалізації систем навігації або маршрутизації контенту:

class ProductController extends Controller
{
    public function catalog(Request $request)
    {
        $uri = Uri::of($request->url());
        $segments = $uri->pathSegments();

        // Витягування категорії та підкатегорії з URL
        $department = $segments->get(0); // 'shop'
        $category = $segments->get(1); // 'electronics'
        $subcategory = $segments->get(2); // 'smartphones'

        // Створення навігаційного дерева на основі сегментів шляху
        $navigation = $segments->map(function ($segment, $index) use ($segments) {
            $url = '/'.implode('/', $segments->take($index + 1)->all());
            return ['label' => ucfirst($segment), 'url' => $url];
        });

        return view('products.catalog', [
            'department' => $department,
            'category' => $category,
            'subcategory' => $subcategory,
            'navigation' => $navigation,
        ]);
    }
}

Метод pathSegments() дозволяє створювати більш підтримуваний та виразний код при роботі з URI, підвищуючи читабельність і зменшуючи обсяг шаблонного коду в додатках Laravel

Популярні

Logomark Logotype

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!

Logomark Logotype

Інтеграція Laravel Socialite з бібліотекою Google Client PHP

Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті

Logomark Logotype

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку