final class XhprofCommands extends DrushCommands (View source)

Supports profiling Drush commands using either XHProf or Tideways XHProf.

Note that XHProf is compatible with PHP 5.6 and PHP 7+, you could also use the Tideways XHProf fork. The Tideways XHProf extension recently underwent a major refactor; Drush is only compatible with the newer version.

Traits

ProcessManagerAwareTrait
LoggerAwareTrait
IO
ConfigAwareTrait

Constants

REQ

OPT

EXIT_SUCCESS

EXIT_FAILURE

EXIT_FAILURE_WITH_CLARITY

XH_PROFILE_MEMORY

XH_PROFILE_CPU

XH_PROFILE_BUILTINS

Properties

protected CommandData|null $commandData from  DrushCommands

Methods

bool
startBrowser(string|null $uri = null, int $sleep = 0, int|null $port = null, string|bool $browser = false)

Starts a background browser/tab for the current site or a specified URL.

static bool
programExists($program)

No description

static string
getEditor(string|null $editor = null)

No description

getConfig()

Replaces same method in ConfigAwareTrait in order to provide a DrushConfig as return type. Helps with IDE completion.

__construct()

No description

SymfonyStyle
io()

Override Robo's IO function with our custom style.

DrushLoggerManager|null
logger()

Returns a logger object.

void
printFile(string $file)

Print the contents of a file.

preHook(CommandData $commandData)

Persist commandData for use in primary command callback. Used by 'topic' commands.

printFileTopic(CommandData $commandData)

Print the contents of a file. The path comes from the @topic annotation.

HandlerStack
getStack()

Get a Guzzle handler stack that uses the Drush logger.

void
optionsetXhProf($options = ['xh-link' => self::REQ])

No description

void
xhprofPost($result, CommandData $commandData)

Finish profiling and emit a link.

void
xhprofInitialize(InputInterface $input, AnnotationData $annotationData)

Enable profiling via XHProf

static bool
xhprofIsEnabled(DrushConfig $config)

Determines if any profiler could be enabled.

static int
xhprofFlags(DrushConfig $config)

Determines flags.

static void
xhprofEnable($flags)

Enable profiling.

xhprofFinishRun($namespace)

Disable profiling and save results.

Details

bool startBrowser(string|null $uri = null, int $sleep = 0, int|null $port = null, string|bool $browser = false)

Starts a background browser/tab for the current site or a specified URL.

Uses a non-blocking Process call, so Drush execution will continue.

Parameters

string|null $uri

Optional URI or site path to open in browser. If omitted, or if a site path is specified, the current site home page uri will be prepended if the site's hostname resolves.

int $sleep
int|null $port
string|bool $browser

Return Value

bool

if browser was opened. FALSE if browser was disabled by the user or a default browser could not be found.

static bool programExists($program)

No description

Parameters

$program

Return Value

bool

static string getEditor(string|null $editor = null)

No description

Parameters

string|null $editor

Return Value

string

DrushConfig getConfig()

Replaces same method in ConfigAwareTrait in order to provide a DrushConfig as return type. Helps with IDE completion.

__construct()

No description

protected SymfonyStyle io()

Override Robo's IO function with our custom style.

Return Value

SymfonyStyle

protected DrushLoggerManager|null logger()

Returns a logger object.

Return Value

DrushLoggerManager|null

protected void printFile(string $file)

Print the contents of a file.

Parameters

string $file

Full path to a file.

Return Value

void

preHook(CommandData $commandData)

Persist commandData for use in primary command callback. Used by 'topic' commands.

Parameters

CommandData $commandData

protected printFileTopic(CommandData $commandData)

Print the contents of a file. The path comes from the @topic annotation.

Parameters

CommandData $commandData

Full path to a file.

protected HandlerStack getStack()

Get a Guzzle handler stack that uses the Drush logger.

void optionsetXhProf($options = ['xh-link' => self::REQ])

No description

Parameters

$options

Return Value

void

void xhprofPost($result, CommandData $commandData)

Finish profiling and emit a link.

Parameters

$result
CommandData $commandData

Return Value

void

void xhprofInitialize(InputInterface $input, AnnotationData $annotationData)

Enable profiling via XHProf

Parameters

InputInterface $input
AnnotationData $annotationData

Return Value

void

static bool xhprofIsEnabled(DrushConfig $config)

Determines if any profiler could be enabled.

Parameters

DrushConfig $config

TRUE when xh.link configured, FALSE otherwise.

Return Value

bool

Exceptions

Exception

static int xhprofFlags(DrushConfig $config)

Determines flags.

Parameters

DrushConfig $config

Return Value

int

static void xhprofEnable($flags)

Enable profiling.

Parameters

$flags

Return Value

void

xhprofFinishRun($namespace)

Disable profiling and save results.

Parameters

$namespace