Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас
Laravel 13.17
Новини 25 червня 2026
6

Підтримка метаданих маршрутів у Laravel 13.17

Команда Laravel випустила версію 13.17.0 з першокласною підтримкою метаданих маршрутів, інтеграцією з PostgreSQL transaction pooler, новою artisan-командою dev:list та обробником винятків Should Not Retry для роботи з чергами.

Підтримка метаданих маршрутів

Маршрути тепер можуть переносити структуровані метадані через весь конвеєр побудови маршрутів, включаючи серіалізацію route:cache та успадкування груп. Раніше розробники могли зберігати користувацькі дані всередині масиву action маршруту, але не існувало офіційного способу послідовного додавання структурованих даних через весь конвеєр. Цей реліз робить метадані першокласним атрибутом маршрутів.

Додайте метадані безпосередньо до маршруту за допомогою методу metadata():

Route::get('/users', [UserController::class, 'index'])
    ->metadata(['head' => ['title' => 'Users']]);

Зчитуйте їх з розв'язаного маршруту за допомогою getMetadata(), який підтримує dot-нотацію та необов'язкове значення за замовчуванням:

$request->route()->getMetadata('head.title');          // 'Users'
$request->route()->getMetadata('head.author', 'Taylor');

Метадані, встановлені на групі, каскадно поширюються на кожен маршрут всередині неї. Асоціативні масиви об'єднуються рекурсивно, тому вкладені групи можуть нашаровувати значення, тоді як списки та скалярні значення замінюють успадковані:

Route::metadata(['head' => ['robots' => ['noindex'], 'author' => 'Taylor']])
    ->group(function () {
        Route::get('/users', [UserController::class, 'index'])
            ->metadata(['head' => ['title' => 'Users']]);
    });
// getMetadata('head') => [
//     'robots'  => ['noindex'],
//     'author'  => 'Taylor',
//     'title'   => 'Users',
// ]

Також підтримуються resource та singleton маршрути. Використовуйте setMetadata() на екземплярі маршруту, щоб замінити метадані замість їх об'єднання.

Підтримка PostgreSQL Transaction Pooler

Цей реліз додає підтримку на рівні фреймворка для проксі-з'єднань PostgreSQL, які використовують transaction-mode pooling, включаючи PgBouncer, AWS RDS Proxy та Neon. У режимі transaction-mode pooling серверне з'єднання утримується лише протягом однієї транзакції, що робить підготовлені оператори несумісними з pooler. Laravel тепер обробляє це автоматично.

Увімкніть pooled режим у вашому конфігураційному файлі database.php:

'pgsql' => [
    'driver'  => 'pgsql',
    'pooled'  => true,
    'url'     => env('DATABASE_URL'),
    // Опціонально: прямий (non-pooled) endpoint для DDL та міграцій
    'direct'  => env('DATABASE_DIRECT_URL'),
    // ...
],

Коли pooled встановлено в true, з'єднання переключається на емульовані prepares, які сумісні з transaction-mode poolers. Команди, що потребують прямого з'єднання (міграції, schema:dump, db:wipe), автоматично направляються до direct endpoint. Інтерактивна команда php artisan db також за замовчуванням використовує direct endpoint, коли він налаштований.

З'єднання без pooled => true зберігають існуючу поведінку native-prepare, тому зміна повністю зворотно сумісна.

Команда dev:list

Нова команда php artisan dev:list виводить список усіх зареєстрованих dev-процесів разом із джерелом, яке зареєструвало кожен з них (ваш додаток або vendor-пакет). Це базується на команді artisan dev, доданій у версії 13.16.0.

php artisan dev:list
php artisan dev:list --except-vendor   # приховати vendor-зареєстровані команди
php artisan dev:list --only-vendor     # показати лише vendor-зареєстровані команди
php artisan dev:list --filter=reverb   # фільтрувати за назвою
php artisan dev:list --json

Цей реліз також замінює блокувальник автоматичної реєстрації vendor з версії 13.16.0 на відстеження джерела. Кожна dev-команда тепер знає, чи вона була зареєстрована з вашого додатка або з vendor-пакета, що dev:list використовує для їх розрізнення у виводі.

Обробник винятків Should Not Retry

Завдання у чергах тепер можуть визначати на рівні винятку, чи слід повторювати спробу після помилки. Метод retry() може розміщуватися безпосередньо в класі винятку:

class PaymentGatewayException extends RuntimeException
{
    public function retry(): bool
    {
        return false; // ніколи не повторювати цей виняток
    }
}

Цей самий метод може бути зареєстрований через обробник withExceptions() у bootstrap вашого додатка для винятків, якими ви не володієте:

->withExceptions(function (Exceptions $exceptions) {
    $exceptions->retry(PaymentGatewayException::class, function () {
        return false;
    });
})

Коли retry() повертає false, завдання негайно позначається як невдале без витрачання решти спроб.

Виправлення порядку викликів timezone для between()/unlessBetween()

Методи планувальника between() та unlessBetween() раніше оцінювали часовий пояс під час визначення, тому розміщення timezone() після них у ланцюжку мовчки використовувало неправильний часовий пояс:

// раніше: лише цей порядок працював правильно
$schedule->command('report')->timezone('Europe/Rome')->between('10:00', '12:00');
// раніше: це використовувало UTC замість Europe/Rome, мовчки
$schedule->command('report')->between('10:00', '12:00')->timezone('Europe/Rome');

Обидва ланцюжки тепер дають однаковий результат. Часовий пояс зчитується при виконанні фільтра, а не при його визначенні.

Прапорець --without-migration-data для schema:dump

Команда schema:dump приймає новий прапорець --without-migration-data, який пропускає рядки таблиці міграцій з виводу. Це корисно, коли потрібен чистий дамп схеми для налаштування тестів без відстеження виконаних міграцій:

php artisan schema:dump --without-migration-data

Інші виправлення та покращення

Версія 13.17.0 також включає:

  • Зменшено кількість читань з кешу при debouncing завдань з maxWait - з двох читань на відправку до одного
  • Виправлено десеріалізацію кешу FileStore для записів з короткими timestamps
  • Виправлено перевірку vendor-реєстрації DevCommands для коректного пропуску userland frames
  • Очищено стан transaction manager при від'єднанні бази даних
  • Дозволено brick/math 0.18
  • Покращено typehints у InteractsWithData, boolean/numeric валідації та формах масивів

Повний список змін доступний у офіційному changelog та Release v13.17.0.

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Backpack CRUD RCE

Повідомлення про безпеку: неавтентифіковане ін'єктування команд у Backpack\CRUD

Команда Backpack for Laravel опублікувала повідомлення про безпеку: у телеметрії пакета Backpack\CRUD виявлено вразливість, що дозволяла віддалене виконання коду (RCE) без автентифікації. Дослідник безпеки Vishal Shukla (@therawdev) відповідально повідомив про проблему 16 травня 2026 року, і команда розробників випустила виправлення менш ніж за 24 години.

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних

PostgreSQL 19 продовжує важливу тенденцію останніх років: класична реляційна база даних поступово перетворюється на універсальну платформу для роботи з різними типами даних - від JSON до графів і аналітики.

Вакансії за темою

Full-time Сьогодні

Tech Lead PHP (Laravel, E-commerce)

Сузір'я, ГК Віддалено За результатами співбесіди

Ми - група компаній, що працює у сфері виробництва, дистрибуції та ритейлу, і шукаємо сильного Tech Lead PHP (Laravel) до команди розробників. Ви відіграватимете ключову роль у формуванні нашого технологічного бачення та розробці архітектури внутрішніх проєктів. Основний стек розробки: Laravel (PHP), MySQL/PostgreSQL, Nginx, Redis, Docker, RabbitMQ. Формат роботи: повна зайнятість, можливість працювати віддалено. Ми очікуємо: Досвід роботи в ролі Tech Lead/Team Lead PHP (Laravel) - не менше 2 років; Досвід роботи з PHP-фреймворком Laravel - не менше 5 років (можливий комбінований досвід, але частка Laravel має бути більшою); Розуміння та практичні навички застосування принципів ООП, патернів проєктування, DRY, SOLID тощо; Успішний досвід побудови проєктів на мікросервісній архітектурі; Знання SQL і досвід роботи з MySQL та PostgreSQL; Досвід побудови високонавантажених сервісів, проєктування та оптимізації баз даних; Досвід роботи з REST API (побудова архітектури сервісів і інтеграція зі сторонніми сервісами); Досвід роботи з Git; Знання frontend-фреймворків; Досвід роботи з E-commerce є обов’язковий ; Досвід роботи з чергами (Redis). Інфраструктура та DevOps: - Контейнеризація застосунків у Docker (multi-stage builds, docker-compose, оптимізація образів), уніфікація dev/staging/prod-середовищ. - Деплой і експлуатація на AWS: EC2, RDS (MySQL/PostgreSQL), S3, ElastiCache (Redis), ELB/ALB, CloudWatch. - Налаштування CI/CD-пайплайнів, zero-downtime деплої. - Проєктування та підтримка інфраструктури під високонавантажені e-commerce-сервіси на мікросервісній архітектурі. Основна мета ролі: Активна участь у повному циклі розробки: від проєктування (архітектури загалом, окремих модулів, баз даних, REST API) до запуску та подальшого розвитку продукту; Доопрацювання та вдосконалення поточних проєктів; Активна участь в імплементації нових продуктових рішень і розробка для них архітектури; Контроль якості коду команди, допомога в усуненні несправностей за потреби, обговорення варіантів вирішення задач; Роль не передбачає менеджменту задач команди - функція планування та контролю виконання закріплена за Project Manager. Водночас техлід бере активну участь у оцінці складності, ризиків та трудомісткості задач під час планування робіт.

Full-time Вчора

Strong Middle Fullstack Engineer — TypeScript / Node.js / React

Romaniuk Consulting Віддалено $3,500 - $5,000

We’re a technical agency that runs the engineering behind one of the biggest Amazon marketing operations in the US. Our platform pulls together Amazon SEO and performance data for some of the largest brands in e-commerce, and we’re rebuilding it from the ground up with a modern stack and AI built in from the start. Full-time, fully remote, exclusive to Automateco. You’ll work directly with the founders to move a live Laravel + React platform over to TypeScript/Node.js/React without taking it down, and build the AI features that change how our clients read and act on their data. What you’ll do Own features end to end: React on the front, Node.js API in the middle, data pipelines underneath. You ship to production every week. Lead the move from a Laravel + React monolith to TypeScript/Node.js + React. Incrementally. Nothing goes dark. Build AI features into the product: recommendations, automated analysis, agent-assisted workflows. Design clean REST APIs and wire up outside data sources like Amazon Advertising and Snowflake. Deploy and monitor your own services. You own them in production, not just in the PR. Help decide how we build with AI agents as we push more autonomous work into the product. Try out new AI tools and bring in the ones that actually make us faster. What you bring Real production experience with TypeScript, React, and Node.js. Not side projects. Solid backend: API design, data modeling, auth, performance. You can find a bottleneck and prove you fixed it. You’ve worked with AI development, or you’re genuinely into it: LLM integrations, agent frameworks, AI-assisted workflows. And you check what the AI gives you instead of pasting it blind. You migrate legacy systems in steps and keep them running. A rewrite is your last resort, not your first move. Comfortable with relational databases and data-heavy apps. You pick the right tool and don’t over-engineer. Good debugging instincts and a habit of writing code other people can read. You can work on your own and communicate clearly in a remote, async team. Nice to have Laravel or PHP. It helps to know the system you’re migrating off of. Amazon Advertising APIs, Snowflake, or e-commerce data pipelines. AI platforms, automation tools like n8n, Make, Zapier, or agent frameworks. React Query, tRPC, Prisma, or similar modern Node tooling. Probably not your role if you’re a frontend dev hoping to learn backend on the job, or your first instinct on old code is to throw it out and start over. How we hire Code review screen, 20 min, no IDE or AI. Technical interview with one of our engineers. Interview with the founders. Offer. Відгукнутись на вакансію

Full-time Вчора

Tech Lead — Solutions Architect (I-Gaming)

Add Talent Solutions Віддалено $5,000 - $8,000

We are seeking a hands-on Tech Lead / Solution Architect to shape and scale our next-generation iGaming platform. This role blends deep technical expertise, architectural design, and leadership skills to ensure our systems meet the demands of high-volume, real-time, and regulated environments. Requirements: Proven experience in building Monolithic, Microservices, and Event-driven architectures, including decomposition of legacy systems into scalable microservices. Designing and implementing high availability (HA), fault-tolerant, and load-balanced solutions for large-scale, high-traffic applications. Orchestration Engines: Hands-on experience with workflow orchestration platforms (e.g., Camunda, Temporal) for process automation and distributed workflows. Strong expertise in designing scalable database schemas and managing both relational (PostgreSQL, MySQL) and NoSQL (MongoDB, Redis) systems with focus on performance optimization and horizontal scaling, Rabbit, Kafka. Knowledge of VMware-based infrastructure as well as modern container orchestration platforms (Docker, Kubernetes). Nice to have: Apache Spark, Hadoop. Building robust CI/CD pipelines using GitLab CI/CD, enabling continuous delivery and deployment across complex environments. Practical development skills in PHP (Laravel, Laravel Octane), Node.js, JavaScript, Next.js, React. Setup and integration of monitoring/alerting systems (Prometheus, Grafana, Kibana, ELK Stack, Sentry) for proactive issue detection and performance analysis. Deep understanding of automation-first approaches, infrastructure as code, and collaboration between development and operations. Proven ability to lead teams, mentor engineers, and align technical decisions with business goals. Skilled at translating business requirements into efficient technical solutions. Experience in using AI technologies Nice to Have: Experience analyzing technical risks and defining mitigation strategies. Expertise in building PoC (Proof of Concept) and MVP (Minimum Viable Product) to validate business ideas quickly. Familiarity with architectural modeling tools (Lucidchart, Draw.io, C4 Model). Experience in multi-region deployments and scaling distributed systems across hybrid environments (cloud + on-premise VMware setups). Background in designing mission-critical financial, e-commerce, or enterprise-grade systems with strict SLAs and compliance requirements. Responsibilities: Evaluation and clarification of incoming functional business requirements from customers and business analytics in specification format; Creation of technical specifications following functional business requirements; Building of services and infrastructure architecture according to technical specifications; Control of compliance of new solutions to the general architecture; Technical risks evaluation for services performance and infrastructure, and potential solutions development for mitigation; Services and infrastructure evolving and optimization; Performance, security, and stress testing planning and supervision found vulnerabilities and issues resolving; Architecture and technical solutions presentation and discussion with technical Leads and members; Supervision of technical solutions compliance to project requirements; Maintenance of technical documentation and development regulations; Requirements analysis, technical design, scope decomposition, and estimation with the technical teams; New projects and services of the company evaluation for compliance with the existing regulations and methodologies; Mentor development team members and Senior technical staff in the architecture area; Establishment and development of new technological practices for the company. What we offer: Competitive salary; Remote work in a flexible environment; 20 working days of paid vacation and education projects; Great product with our software solution; Opportunity for growth at professional levels, attending top industry events and conferences, and international workshops at our competence centers. Don’t delay! Send your CV right now and join our highly professional and ambitious team! Відгукнутись на вакансію

Пакети за темою

Laravel Web Tinker

spatie/laravel-web-tinker

Інтерактивна оболонка Artisan Tinker прямо у браузері для швидкого тестування та налагодження коду Laravel.

1,216 1.10.6 13 2

Laravel Short Schedule

spatie/laravel-short-schedule

Планування виконання artisan команд із частотою менше однієї хвилини.

649 1.7.0