Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Новини 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

Читати в документації

Коментарі

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

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

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

Filament v5.10.0
Новини 12 жовтня 2026

Filament v5.10.0: сітка в rich editor, скелетони таблиць і десятки виправлень

Вийшов Filament v5.10.0: елементи керування сіткою в rich editor, допоміжний контент для віджетів-графіків, скелетони завантаження таблиць, submitOnCompletion() для OneTimeCodeInput та багато виправлень авторизації, доступності й стану.

17
Laravel AI SDK на практиці
Новини 09 жовтня 2026

Laravel AI SDK на практиці: агент, що стоїть за There There

Фрік Ван дер Гертен розповідає, як у Spatie побудували AI-шар хелпдеска There There на Laravel AI SDK: клас агента, інструменти з типізованою JSON-схемою та делегування роботи звичайним domain-діям.

12

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

Intobi Нова
Вчора

Full-Stack Developer PHP+Angular

Розробник повного стеку, який створює та підтримує функціонал на Angular (TypeScript) і PHP, проєктує й інтегрує REST/GraphQL API та оптимізує роботу з реляційними базами даних. Вимоги: досвід PHP 8+ з Laravel або Symfony, впевнене володіння Angular, RxJS і управлінням станом, знання MySQL/PostgreSQL, Git і CI/CD. Очікується активне використання AI-агентів (Claude Code) у щоденній роботі та участь у код-рев'ю.

Intobi Нова
Вчора

Fullstack Developer PHP+Angular

Full-stack розробник для роботи з Angular (TypeScript) на фронтенді та PHP 8+ з Laravel або Symfony на бекенді, включно з розробкою REST/GraphQL API та роботою з реляційними БД (MySQL/PostgreSQL). Щоденно очікується використання AI-інструментів, насамперед Claude Code, для генерації коду, рефакторингу та написання тестів з обов'язковою перевіркою результату. Вимоги: самостійний досвід роботи з frontend і backend, знання RxJS, Git, CI/CD та готовність швидко переключатися між проєктами.

АЛЛО Нова
Вчора

Magento Developer

Розробка, підтримка та вдосконалення рішень на базі Magento 2 / Adobe Commerce: створення кастомних модулів, плагінів і розширень, оптимізація продуктивності інтернет-магазину та роботи з великими каталогами товарів, участь у code review і технічному плануванні. Потрібен комерційний досвід на Magento 2, впевнене володіння PHP, знання OOP/SOLID, Composer, PSR, Magento API, MySQL, Redis, Elasticsearch, Docker, CI/CD та Git. Symfony або Laravel будуть перевагою.

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

Laravel Debugbar

barryvdh/laravel-debugbar

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

19,291 v4.4.4 13 11

Laravel Slower

halilcosdu/laravel-slower

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

413 v3.2.0 13 4