1. Go to this page and download the library: Download tomloprod/time-warden library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tomloprod / time-warden example snippets
timeWarden()->task('Checking articles')->start();
foreach ($articles as $article) {
// Perform long process... 🕒
}
// Using traditional anonymous function
timeWarden()->stop(static function (Task $task): void {
$task->onExceedsMilliseconds(500, static function (Task $task): void {
// Do what you need, for example, send an email 🙂
Mail::to('[email protected]')->queue(
new SlowArticleProcess($task)
);
});
});
// Or using an arrow function
timeWarden()->stop(static function (Task $task): void {
$task->onExceedsMilliseconds(500, fn (Task $task) => Log::error($task->name.' has taken too long'));
});
$task->onExceedsSeconds(10, function () { ... });
$task->onExceedsMinutes(5, function () { ... });
$task->onExceedsHours(2, function () { ... });
timeWarden()->task('Articles task');
foreach ($articles as $article) {
// Perform long process...
}
// Previous task is automatically stopped when a new task is created
timeWarden()->task('Customers task');
foreach ($customers as $customer) {
// Perform long process...
}
/**
* You can print the results directly or obtain a
* summary with the `getSummary()` method
*/
echo timeWarden()->output();
timeWarden()->group('Articles')->task('Loop of articles')->start();
foreach ($articles as $article) {
// Perform first operations
}
timeWarden()->task('Other articles process')->start();
Foo::bar();
// Previous task is automatically stopped when a new task is created
timeWarden()->group('Customers')->task('Customers task')->start();
foreach ($customers as $customer) {
// Perform long process...
}
timeWarden()->task('Other customer process')->start();
Bar::foo();
/**
* You can print the results directly or obtain a
* summary with the `getSummary()` method
*/
echo timeWarden()->output();
if (app()->environment('local')) {
Log::debug(timeWarden()->output());
}
timeWarden()->task('Task 1')->start();
TimeWarden::task('Task 1')->start();
// Destroys the TimeWarden instance and returns a new one.
TimeWarden::reset(): TimeWarden
// Creates a new group.
TimeWarden::group(string $groupName): TimeWarden
/**
* Creates a new task inside the last created group
* or within the TimeWarden instance itself.
*/
TimeWarden::task(string $taskName): TimeWarden
// Starts the last created task
TimeWarden::start(): TimeWarden
// Stops the last created task
TimeWarden::stop(): TimeWarden
// Obtains all the created groups
TimeWarden::getGroups(): array
/**
* It allows you to obtain a TimeWardenSummary instance,
* which is useful for getting a summary of all groups
* and tasks generated by TimeWarden.
*
* Through that instance, you can retrieve the summary
* in array or string (JSON) format.
*/
TimeWarden::getSummary(): TimeWardenSummary;
/**
* Returns a table with execution time debugging info
* (ideal for displaying in the console).
*/
TimeWarden::output(): string
$task = new Task('Task 1');
$task->start(): void
$task->stop(?callable $fn = null): void
// Returns the duration of the task in a human-readable format. Example: *1day 10h 20min 30sec 150ms*
$task->getFriendlyDuration(): string
// Returns the duration of the task in milliseconds
$task->getDuration(): float
// Returns the taskable element to which the task belongs.
$task->getTaskable(): ?Taskable
$task->hasStarted(): bool
$task->hasEnded(): bool
$task->getStartDateTime(): ?DateTimeImmutable
$task->getEndDateTime(): ?DateTimeImmutable
$task->getStartTimestamp(): float
$task->getEndTimestamp(): float
/** @return array<string, mixed> */
$task->toArray(): array
// Reactive execution time methods
$task->onExceedsMilliseconds(float $milliseconds, callable $fn): ?Task
$task->onExceedsSeconds(float $seconds, callable $fn): ?Task
$task->onExceedsMinutes(float $minutes, callable $fn): ?Task
$task->onExceedsHours(float $hours, callable $fn): ?Task
// Starts the last created task inside this group
$group->start(): void
// Create a new task within the taskable.
$taskable->createTask(string $taskName): Task;
$taskable->getTasks(): array;
$taskable->getLastTask(): ?Task;
// Return the total time in milliseconds of all tasks within the taskable.
$taskable->getDuration(): float;
$taskable->toArray(): array;
$taskable->toJson(): string;