Skip to content

This plugin allows you to profile your Shopware 5 application

License

Notifications You must be signed in to change notification settings

FriendsOfShopware/FroshProfiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ea36064 · Dec 7, 2022
Jun 17, 2021
Oct 7, 2022
Aug 11, 2019
Feb 26, 2018
Dec 7, 2022
Jan 3, 2021
Sep 9, 2019
Jun 9, 2019
Sep 9, 2019
Feb 26, 2018
Jun 2, 2022
Feb 26, 2018
Nov 23, 2020
Aug 20, 2019
Sep 9, 2019
Oct 26, 2020
Jul 16, 2019
Jan 25, 2019
Oct 7, 2022
Jul 9, 2019

Repository files navigation

Profiling

Travis CI Download @ Community Store

Profiling for Shopware

Version Requirements Availability
1.3 Min. Shopware 5.2, PHP 5.6 Github & Community Store
1.4 Min. Shopware 5.6, PHP 7.2 Github & Community Store

Please create Pull Requests to the lowest version

Installation

Zip Installation package for the Shopware Plugin Manager

  • Download the latest plugin version (e.g. FroshProfiler-1.3.6.zip)
  • Upload and install plugin using Plugin Manager

Git Version

  • Checkout Plugin in /custom/plugins/FroshProfiler
  • Change to Directory and run composer install to install the dependencies
  • Install the Plugin with the Plugin Manager

Install with composer

  • Change to your root Installation of shopware
  • Run command composer require frosh/shopware-profiler and install and active plugin with Plugin Manager

Features

Var Dump Server

Starting with 1.3.0 profiler does also support var dump server from Symfony 4.1.

How to use it?

  • Enable var dump server in plugin config
  • Open a terminal and run ./bin/console server:dump --format=html > dump.html
  • Use method dump() in your code and open dump.html in your Browser.

VarDumpServerHtml

Adding additional stop watch events

$this->get('frosh_profiler.stop_watch')->start('Watch Name');

// Your code

$this->get('frosh_profiler.stop_watch')->stop('Watch Name');

Go to Performance tab, and your custom events are shown there

JavaScript: StateManager and Event Logging

Will log ...

... PubSub events:

  • subscribe (event name)
  • unsubscribe (event name)
  • publish (event name, arguments)

... Plugin registration:

  • addPlugin (plugin name, element, viewports)
  • removePlugin (plugin name, element)
  • updatePlugin (plugin name, element)
  • destroyPlugin (plugin name, element)

... Breakpoint change:

  • switchPlugins (previous/current state)

... Plugin initialization:

  • initPlugin (plugin name, selector, event handlers)

Filter

You can filter output by ...

  • type (available: subscribe, unsubscribe, publish, addPlugin, removePlugin, updatePlugin, destroyPlugin, switchPlugins, initPlugin)
  • event name
  • plugin name

To set filter use the javascript console and the following functions, corresponding to each filter:

StateDebug.setFilterType('publish');
StateDebug.setFilterEvent(['onTrackItems', 'onSetSizes']);
StateDebug.setFilterPlugin('swAjaxVariant');

You can pass a single filter criteria as string or an array of multiple filter criterias.

Type criterias need to be exact and valid (see above). Event and plugin name criterias can include part of the name.

To reset filter criterias call the functions without any arguments.

Backend Profiling

Backend Profiling can be enabled in plugin configuration. The Profile link can be retrieved from the Request Response Header "X-Profiler-URL"

Images

Browser Toolbar

Performance Profiling