PHPackages                             smilian/perfreporter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. smilian/perfreporter

ActiveLibrary[Testing &amp; Quality](/categories/testing)

smilian/perfreporter
====================

Measures the performance of PHP code for Symfony projects. Process measurements, lead times, file location...

010PHP

Since Mar 21Pushed 4y ago1 watchersCompare

[ Source](https://github.com/Fred-QS/Perf-Reporter)[ Packagist](https://packagist.org/packages/smilian/perfreporter)[ RSS](/packages/smilian-perfreporter/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Perf Reporter
=============

[](#perf-reporter)

[![PHP Composer](https://github.com/Fred-QS/Perf-Reporter/actions/workflows/php.yml/badge.svg)](https://github.com/Fred-QS/Perf-Reporter/actions/workflows/php.yml)

Perf-Reporter is a package dedicated to Symfony 5 and more, allowing to measure the performance of the runtime through its execution time and the memory allocated to it.

To install it, run the following command:

```
composer require smilian/perfreporter
```

---

### Publish files

[](#publish-files)

After installing the package, run the following command to publish the files:

```
php vendor/smilian/perfreporter/publish
```

By publishing those files, a new controller called "DisplayPerfReportsController.php" has been created in src/Controller folder and defines a new Route with URL: "/perf-reporter". [![screenshot1](https://github.com/Fred-QS/Perf-Reporter/raw/main/public/img/screenshot1.png)](https://github.com/Fred-QS/Perf-Reporter/blob/main/public/img/screenshot1.png)Some commands have been added to bin/console with the "app" namespace. Check them with:

```
   bin/console --short
```

---

### Unpublish files

[](#unpublish-files)

If you want to remove the files corresponding to the package, you can also debug them with the command: ```
php vendor/smilian/perfreporter/unpublish
```

---

### Public methods list

[](#public-methods-list)

```
// Set timezone (default: "Europe/London")
PerformancesLogger::setTimezone(string $zone);

// Set locale (default: "en")
PerformancesLogger::setLocale(string $locale);

// Launch chronometer
PerformancesLogger::setStart();

// Set Alarm step value in seconds (default: 3)
PerformancesLogger::setAlarmStep(int $val);

// Set Maximum report files to create/conserve (default: 4)
PerformancesLogger::setMax(int $val);

// Set report title (default: "Performances and Measurement")
PerformancesLogger::setTitle(string $data);

// Set app/site owner/customer logo where $data is a absolute path/to/your/image
PerformancesLogger::setAppOwnerLogo(string $data);

// As breadcrumbs, dispatch this method anywhere you want to get performances
PerformancesLogger::setStep(string $data);

// Optional, Set some information if needed, that will fill an array like self::$header[$key] = $value;
PerformancesLogger::setHeader(string $key, mixed $value);

// Render the Report file
PerformancesLogger::getResult();

// Delete reports/ folder
PerformancesLogger::deleteReports();

// Get the list of all reports (if mode === 'html' return perf-reports template, but if mode === '' as default, will return reports list)
PerformancesLogger::getReportList(string $mode = '');

// Get report html content
PerformancesLogger::getReport(string $path);
```

---

### Usage

[](#usage)

In the file where the process works:

```
// ...
use Smile\Perfreporter\Performers\PerformancesLogger;
// ...
$perfs = PerformancesLogger::setTitle(YOUR_CUSTOM_TITLE)
            ->setTimezone('Europe/Paris')
            ->setLocale('fr')
            ->setAppOwnerLogo(PATH_TO_IMAGE)
            ->setStart();
// Process to check
$perfs::setStep(DETAIL_YOU_NEED_TO_FILL);
// End of the process
$perfs::getResult();
```

Because **Smile\\Perfreporter\\Performers\\PerformancesLogger** is a static class, you can put some *setStep()* in any file where the process works and finish to use *setRender()* in the file where the process ends.

Where process starts

```
// ...
use Smile\Perfreporter\Performers\PerformancesLogger;
// ...
$perfs = PerformancesLogger::setTitle(YOUR_CUSTOM_TITLE)
            ->setTimezone('Europe/Paris')
            ->setLocale('fr')
            ->setAppOwnerLogo(PATH_TO_IMAGE)
            ->setStart();
// ...
```

Some file where process works

```
// ...
use Smile\Perfreporter\Performers\PerformancesLogger;
// ...
$perfs::setStep(DETAIL_YOU_NEED_TO_FILL);
// ...
```

Where process ends

```
// ...
use Smile\Perfreporter\Performers\PerformancesLogger;
// ...
$perfs::getResult();
// ...
```

###  Health Score

16

—

LowBetter than 4% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity27

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/cd74d229acfd8d9d0e21bf1801d5c34422a1e6ee4f1280510da5ed60ad6de809?d=identicon)[Frédéric Geffray](/maintainers/Fr%C3%A9d%C3%A9ric%20Geffray)

---

Top Contributors

[![My-Hero-Macadamia](https://avatars.githubusercontent.com/u/66546741?v=4)](https://github.com/My-Hero-Macadamia "My-Hero-Macadamia (2 commits)")

### Embed Badge

![Health badge](/badges/smilian-perfreporter/health.svg)

```
[![Health](https://phpackages.com/badges/smilian-perfreporter/health.svg)](https://phpackages.com/packages/smilian-perfreporter)
```

###  Alternatives

[dms/phpunit-arraysubset-asserts

This package provides ArraySubset and related asserts once deprecated in PHPUnit 8

14228.7M340](/packages/dms-phpunit-arraysubset-asserts)[orchestra/workbench

Workbench Companion for Laravel Packages Development

8219.1M69](/packages/orchestra-workbench)[phpbenchmark/phpbenchmark

Easy to use benchmark toolkit for your PHP-application. This library contains classes for comparing algorithms as well as benchmarking application responses

8011.5k2](/packages/phpbenchmark-phpbenchmark)[kunicmarko/graphql-test

GraphQL Test Cases

1359.0k](/packages/kunicmarko-graphql-test)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
