Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
1071 of 1361 menu
◀ ▶

Метод lap класса Stopwatch

Метод lap класса Stopwatch позволяет зафиксировать промежуточный отрезок времени внутри уже запущенного события. Секундомер должен быть предварительно запущен методом start. При вызове lap закрывается текущий отрезок и сразу открывается новый, поэтому событие продолжает идти, а в его истории появляется ещё один замер. Метод не принимает параметров и возвращает объект StopwatchEvent текущего события.

Синтаксис

$stopwatch->lap(string $name): StopwatchEvent

Пример

Давайте запустим секундомер, сделаем паузу, поставим промежуточную метку методом lap и посмотрим на количество отрезков:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentStopwatchStopwatch; class ArticleController extends AbstractController { public function index(): Response { $stopwatch = new Stopwatch(); $stopwatch->start('article'); usleep(100000); $event = $stopwatch->lap('article'); return new Response(count($event->getPeriods())); } } ?>

Результат выполнения кода:

2

Пример

Давайте поставим несколько промежуточных меток и выведем количество отрезков:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentStopwatchStopwatch; class ArticleController extends AbstractController { public function index(): Response { $stopwatch = new Stopwatch(); $stopwatch->start('article'); usleep(100000); $stopwatch->lap('article'); usleep(100000); $stopwatch->lap('article'); usleep(100000); $event = $stopwatch->stop('article'); return new Response(count($event->getPeriods())); } } ?>

Результат выполнения кода:

3

Пример

Давайте сохраним каждую метку в массив и выведем длительность каждого отрезка:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentStopwatchStopwatch; class ArticleController extends AbstractController { public function index(): Response { $stopwatch = new Stopwatch(); $stopwatch->start('article'); $res = []; usleep(100000); $res[] = $stopwatch->lap('article')->getDuration(); usleep(100000); $res[] = $stopwatch->lap('article')->getDuration(); usleep(100000); $res[] = $stopwatch->stop('article')->getDuration(); return new Response(implode(', ', $res)); } } ?>

Результат выполнения кода:

"100, 100, 100"

Смотрите также

  • класс Stopwatch,
    который измеряет время выполнения участков кода
  • метод start,
    который запускает секундомер
  • метод stop,
    который останавливает секундомер
  • метод isStarted,
    который проверяет, запущен ли секундомер
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить