Public Repository

Last pushed: 13 days ago
Short Description
Full Description

This image is intended to be used with nfqlt/docker vagrant box and other nfqlt docker images.
Other use scenarios might work but are not tested yet.

XHGUI container

This container includes mongodb, php-cli and xhgui project

Installing xhgui

Simple add this container to your project with name xhgui (or link it with other containers with xhgui name)
There is only a single port 80 that needs to be exposed: recommended value is 1081

version: '2.1'
    image: nfqlt/xhgui
    network_mode: bridge
      - ""

Additional to xhgui you'll need a php tideways extension enabled in your fpm and/or dev containers.

Using tideways profiler and xhgui

After enabling tideways extension a prepared php file will be included in project execution chain with php
directive auto_prepend_file, but by default it will not profile anything,
so the impact at this stage will be minimal. To actually profile application there are few ways:

  • Web requests will be profiled automatically if cookie NFQ_PROFILER will be detected (make sure xdebug cookies are not present)
  • CLI runs can be profiled with environment variable NFQ_PROFILER example: NFQ_PROFILER=1 php ./script.php
  • Custom code blocks can be profiled by surrounding code with
    \NfqProfiler::startProfiler() and \NfqProfiler::stopProfiler() example:
public function magicMethod()

Custom calls to start and stop profiler

  * Starts tideways profiler
  * @param int $flags - Flags passed to tideways_enable()*
  * @param array $options - Options passed to tideways enable()*
  * @param bool $manual - Should be true if started manually
public static function startProfiler($flags = null, $options = array(), $manual = true);

  * Stops profiling and send data to xhgui, also will return array containing data
  * sent to xhgui
  * @param bool $shouldFlush - Should flush php buffers before stopping the profiler
  * @param bool $manual - Should be true if stopped manually
  * @return array
public static function stopProfiler($shouldFlush = true, $manual = true);

Docker Pull Command