Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас
Новини 22 липня 2026

Laravel Time Machine: профайлер життєвого циклу запитів

Laravel Time Machine - це профайлер продуктивності від Jaydeep Gadhiya, який записує кожен етап обробки Laravel-запиту: завантаження (bootstrap), middleware, маршрутизацію, контролер, відповідь та завершення (termination) - з точністю до мілісекунди. Пакет відповідає на одне ключове питання: куди пішов час під час виконання цього запиту?

Основні можливості

Пакет надає такі функції:

  • Хронологія життєвого циклу - діаграма в стилі Ганта з розбивкою кожної фази запиту, від завантаження фреймворку до кроку terminate
  • Захоплення запитів - кожна SQL-інструкція з параметрами (bindings), з'єднанням та часом виконання; вмикається через collectors.queries
  • Виділення повільних операцій - запити понад 500 мс та SQL-запити понад 50 мс позначаються; обидва пороги можна налаштувати
  • Зберігання у файлах - профілі зберігаються як звичайні JSON-файли в storage/time-machine; без таблиць бази даних чи міграцій
  • Шаблони ігнорування - запити до статичних ресурсів та шляхи на кшталт дашборду Telescope пропускаються через ignore_paths
  • Типово лише для debug - профайлер слідує за APP_DEBUG, тому залишається вимкненим у production, якщо не активувати його явно

Дашборд з хронологією

Після встановлення пакет автоматично записує кожен HTTP-запит і надає автономний дашборд за адресою /time-machine, коли його увімкнено. Кожен запит отримує візуальну хронологію, що показує, скільки часу додаток витратив на кожну фазу життєвого циклу, разом із використанням пам'яті та кількістю запитів до бази даних. Запити, що перевищують поріг повільності (типово 500 мс), виділяються, тому вузькі місця одразу помітні в списку останніх профілів.

Власне інструментування

Окрім автоматичних фаз життєвого циклу, ви можете інструментувати власний код через фасад TimeMachine. Додавайте мітки часу (point-in-time markers), вимірюйте блоки коду або керуйте проміжками (spans) вручну:

use Jaydeep\LaravelTimeMachine\Facades\TimeMachine;

// Додати мітку на хронології
TimeMachine::mark('cache primed');

// Виміряти блок коду
$report = TimeMachine::measure('generate-report', function () {
    return Report::build();
});

// Ручне керування проміжком
TimeMachine::startSpan('external-api');
$response = Http::get('https://api.example.com');
TimeMachine::endSpan('external-api');

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

Зберігання без бази даних

Профілі записуються як JSON-файли в storage/time-machine, що означає відсутність міграцій і те, що дані ніколи не залишають ваш сервер. Типово пакет зберігає 100 останніх профілів і видаляє найстаріші в міру надходження нових запитів; налаштування storage.max_records (або змінна оточення TIME_MACHINE_MAX_RECORDS) дозволяє змінити ліміт.

Порівняння з Telescope та Debugbar

Існує певне перетинання з Laravel Telescope та Laravel Debugbar, але ці три інструменти мають різні сфери застосування. Telescope моніторить багато частин додатку - запити, завдання (jobs), пошту, сповіщення, кеш та інше - і зберігає записи в базі даних.

Debugbar відображає панель інструментів усередині поточної сторінки з даними про час виконання та запити для цієї відповіді.

Time Machine знаходиться посередині: він зберігає історію останніх запитів, як Telescope, але збирає лише дані про час життєвого циклу та запити, зберігає їх у плоских файлах і представляє на хронології. Якщо вам потрібен повний моніторинг додатку, Telescope залишається кращим вибором; якщо ви профілюєте, де саме окремі запити витрачають свій час - це саме той випадок, для якого створено цей пакет.

Встановлення та конфігурація

Пакет підтримує Laravel версій від 8 до 13 і встановлюється через Composer з автоматичним виявленням сервіс-провайдера та фасаду:

composer require jaydeep/laravel-time-machine

Публікація конфігураційного файлу необов'язкова:

php artisan vendor:publish --tag=time-machine-config

Дізнатися більше про пакет, отримати повні інструкції зі встановлення та переглянути вихідний код можна в репозиторії laravel-timemachine на GitHub.

1

Коментарі

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

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

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

Laracon US 2026: відео першого дня вже доступне Рекомендовано
Новини 29 липня 2026

Laracon US 2026: відео першого дня вже доступне

У Бостоні стартував Laracon US 2026, і запис першого дня вже доступний. Головне з кейноуту: офіційний Laravel LSP для редакторів, Laravel Cloud деплоїть Hono, Flask, Go та Rails, Pest 5 із Tia Engine. Аарон Френсіс приєднався до команди Laravel.

Pest 5: Tia Engine, плагін для AI-агентів і evals для LLM
Новини 29 липня 2026

Pest 5: Tia Engine, плагін для AI-агентів і evals для LLM

На першому дні Laracon US 2026 Нуно Мадуро представив Pest 5. Головне - Tia Engine, що переганяє лише зачеплені змінами тести й скорочує десятихвилинний прогін до кількох секунд, плюс плагіни для AI-агентів, evals, PHPStan і Rector.

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

AQA (Playwright/Cypress)

QA спеціаліст з автоматизацією тестування на Playwright/Cypress для веб-застосунку на Vue 3/Nuxt 3 з реалтайм-функціональністю. Основні обов'язки: написання e2e тестів з нуля, ручне тестування frontend/backend функціоналу, тестування REST API в Postman, роботи з DevTools, регресійне тестування та współпраця з розробниками. Вимоги: досвід в автоматизації, розуміння HTTP, WebSockets, таск-трекерів і оформлення баг-репортів.

ConveyThis Нова
Сьогодні

Middle PHP Developer

Middle PHP розробник для SaaS стартапу розробляє та оптимізує веб-додатки на Laravel, SQL/NoSQL, JavaScript та Bootstrap. Вимагається 3+ років досвіду з PHP/Laravel, глибоке розуміння баз даних, навички OOP та чистого коду. Повна віддаленість (часовий пояс Нью-Йорка), робота в швидкому стартап-середовищі з фокусом на масштабованість та якість кода.

PHP Developer

Senior PHP/Laravel розробник для створення та підтримки API-сервісів та систем інтеграції. Основні обов'язки: проектування partner-facing APIs, реалізація механізмів синхронізації даних у реальному часі, робота з REST API та вебхуками. Вимоги: 5+ років досвіду, експертиза PHP/Laravel, глибоке розуміння REST API, досвід з Git/CI-CD та AI-інструментами для розробки.

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

Laravel Debugbar

barryvdh/laravel-debugbar

Інтеграція PHP Debugbar у Laravel для відлагодження та аналізу роботи додатку.

19,266 v4.4.0 13 7

Laravel Slower

halilcosdu/laravel-slower

Laravel Slower — пакет для оптимізації запитів до бази даних за допомогою штучного інтелекту, який допомагає виявити та покращити повільні SQL-запити в додатку.

410 v3.2.0 13 3

Відео за темою