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

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

Коментарі

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

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

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

PayZephyr
Новини 12 вересня 2026

PayZephyr: Єдиний API для роботи з Stripe, Paystack та PayPal

PayZephyr - Laravel-пакет від Nwaneri Chukwunyere Kenneth, який об'єднує вісім платіжних провайдерів під одним зручним API. Підтримує автоматичне перемикання, захист від подвійної оплати, підписки та повернення коштів.

2
Laravel Telescope
Новини 11 вересня 2026

Artisan-команди для дебагу в Laravel Telescope 5.24.0

Laravel Telescope 5.24.0 додає дві нові Artisan-команди для роботи із записами із терміналу. Тепер можна переглядати запити, винятки, джоби та запити до бази даних без відкриття веб-інтерфейсу, а також отримувати дані у форматі JSON для скриптів та AI-агентів.

3

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

Full Stack Developer (PHP, React, Middle, Middle+)

Full Stack розробник для підтримки та розвитку аналітичного продукту перевірки контрагентів. Робота зі складною бізнес-логікою, базами даних та інтеграцією AI-рішень. Стек: PHP 8.x (Laravel/Symfony), React, MySQL, REST API. Вимоги: 3+ років комерційного досвіду, глибоке розуміння SQL, Git, Docker, CI/CD, Linux, OWASP.

Starlight Media Нова
2 дні тому

Senior Full-Stack Developer (PHP, Go, Vue.js)

Senior Full-Stack розробник для розвитку та підтримки веб-платформ. Основні завдання: розробка на PHP (Yii2, Laravel), Go, Vue.js, MySQL оптимізація, REST API, рефакторинг коду. Вимоги: 3+ років досвіду, PHP 8.x ООП, досвід Go або готовність його розвивати, JavaScript ES6+, Git, Docker, англійська B1-B2.

KRONAS Нова
3 дні тому

Маляр МДФ

Middle Backend Developer з досвідом 2+ років розробки вебзастосунків на PHP та Laravel. Основні завдання: розробка нових сервісів, підтримка legacy-проєктів, розробка REST API, оптимізація SQL-запитів, интеграція із зовнішніми API. Вимоги: впевнене знання PHP, Laravel, MySQL, Git, практичний досвід REST API, здатність працювати з чужим кодом та legacy-кодом.

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

Laravel Debugbar

barryvdh/laravel-debugbar

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

19,277 v4.4.3 13 11

Laravel Slower

halilcosdu/laravel-slower

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

414 v3.2.0 13 4