class TmpFile extends Write implements CompletionInterface (View source)

Create a temporary file that is automatically cleaned up once the task collection is is part of completes. When created, it is given a random filename.

This temporary file may be manipulated exacatly like taskWrite(). It is deleted as soon as the collection it is a part of completes or rolls back.

<?php
$collection = $this->collectionBuilder();
$tmpFilePath = $collection->taskTmpFile()
     ->line('-----')
     ->line(date('Y-m-d').' '.$title)
     ->line('----')
     ->getPath();
$collection->run();
?>

Traits

Task input/output methods. TaskIO is 'used' in BaseTask, so any task that extends this class has access to all of the methods here.

Task input/output methods. TaskIO is 'used' in BaseTask, so any task that extends this class has access to all of the methods here.

LoggerAwareTrait

Properties

protected ConfigInterface $config from  ConfigAwareTrait
protected OutputAdapterInterface $outputAdapter from  VerbosityThresholdTrait
protected int $verbosityThreshold from  VerbosityThresholdTrait
protected OutputInterface $output from  OutputAwareTrait
protected TimeKeeper|null $timer from  Timer
protected null|ProgressIndicator $progressIndicator from  ProgressIndicatorAwareTrait
protected array $stack from  Write
protected string $filename from  Write
protected bool $append from  Write
protected null|string $originalContents from  Write

Methods

$this
setConfig(ConfigInterface $config)

Set the config management object.

ConfigInterface
getConfig()

Get the config management object.

static string
configPrefix()

Any class that uses ConfigAwareTrait SHOULD override this method , and define a prefix for its configuration items. This is usually done in a base class. When used, this method should return a string that ends with a "."; see BaseTask::configPrefix().

static 
configClassIdentifier($classname)

No description

static 
configPostfix()

No description

static 
configure(string $key, mixed $value, ConfigInterface|null $config = null)

No description

mixed|null
getConfigValue(string $key, mixed|null $default = null)

No description

$this
setVerbosityThreshold(int $verbosityThreshold)

Required verbosity level before any TaskIO output will be produced.

int
verbosityThreshold()

No description

bool
hasOutputAdapter()

No description

writeMessage(string $message)

Print a message if the selected verbosity level is over this task's verbosity threshold.

$this
setOutput(OutputInterface $output)

No description

OutputInterface
output()

No description

OutputInterface
stderr()

No description

OutputInterface
getOutput() deprecated

Backwards compatibility

null|LoggerInterface
logger() deprecated

No description

from  TaskIO
printTaskInfo(string $text, null|array $context = null)

Print information about a task in progress.

from  TaskIO
printTaskSuccess(string $text, null|array $context = null)

Provide notification that some part of the task succeeded.

from  TaskIO
printTaskWarning(string $text, null|array $context = null)

Provide notification that there is something wrong, but execution can continue.

from  TaskIO
printTaskError(string $text, null|array $context = null)

Provide notification that some operation in the task failed, and the task cannot continue.

from  TaskIO
printTaskDebug($text, null|array $context = null)

Provide debugging notification. These messages are only displayed if the log level is VERBOSITY_DEBUG.

from  TaskIO
printTaskOutput(string $level, string $text, null|array $context) deprecated

No description

from  TaskIO
bool
hideTaskProgress()

No description

from  TaskIO
showTaskProgress(bool $inProgress)

No description

from  TaskIO
string
formatBytes(int $size, int $precision = 2)

Format a quantity of bytes.

from  TaskIO
string
getPrintedTaskName(null|object $task = null)

Get the formatted task name for use in task output.

from  TaskIO
array
getTaskContext(null|array $context = null)

No description

from  TaskIO
startTimer()

No description

from  Timer
stopTimer()

No description

from  Timer
resetTimer()

No description

from  Timer
float|null
getExecutionTime()

No description

from  Timer
$this
setProgressIndicator(null|ProgressIndicator $progressIndicator)

No description

null|bool
hideProgressIndicator()

No description

restoreProgressIndicator(bool $visible)

No description

bool
inProgress()

No description

advanceProgressIndicator(int $steps = 1)

No description

$this
inflect(InflectionInterface|mixed $parent)

Ask the provided parent class to inject all of the dependencies that it has and we need.

injectDependencies(mixed $child)

Take all dependencies availble to this task and inject any that are needed into the provided task. The general pattern is that, for every FooAwareInterface that this class implements, it should test to see if the child also implements the same interface, and if so, should call $child->setFoo($this->foo).

from  BaseTask
__construct(string $filename = 'tmp', string $extension = '', string $baseDir = '', bool $includeRandomPart = true)

No description

$this
filename(string $filename)

No description

from  Write
$this
append(bool $append = true)

No description

from  Write
$this
line(string $line)

add a line.

from  Write
$this
lines(array $lines)

add more lines.

from  Write
$this
text(string $text)

add a text.

from  Write
$this
textFromFile(string $filename)

add a text from a file.

from  Write
$this
place(string $name, string $val)

substitute a placeholder with value, placeholder must be enclosed by {}.

from  Write
$this
replace(string $string, string $replacement)

replace any string with value.

from  Write
$this
regexReplace(string $pattern, string $replacement)

replace any string with value using regular expression.

from  Write
$this
appendIfMatches(string $pattern, string $text)

Append the provided text to the end of the buffer if the provided regex pattern matches any text already in the buffer.

from  Write
$this
appendUnlessMatches(string $pattern, string $text)

Append the provided text to the end of the buffer unless the provided regex pattern matches any text already in the buffer.

from  Write
string
textFromFileCollect(string $contents, string $filename)

No description

from  Write
string|string[]
replaceCollect(string|string[] $contents, string|string[] $string, string|string[] $replacement)

No description

from  Write
string|string[]
regexReplaceCollect(string|string[] $contents, string|string[] $pattern, string|string[] $replacement)

No description

from  Write
string
textCollect(string $contents, string $text)

No description

from  Write
string
appendIfMatchesCollect(string $contents, string $pattern, string $text, bool $shouldMatch)

No description

from  Write
string
originalContents()

No description

from  Write
bool
wouldChange()

No description

from  Write
string
getContentsToWrite()

No description

from  Write
run()

No description

from  Write
string
getPath()

No description

from  Write
complete()

Delete this file when our collection completes.

Details

$this setConfig(ConfigInterface $config)

Set the config management object.

Parameters

ConfigInterface $config

Return Value

$this

ConfigInterface getConfig()

Get the config management object.

Return Value

ConfigInterface

static protected string configPrefix()

Any class that uses ConfigAwareTrait SHOULD override this method , and define a prefix for its configuration items. This is usually done in a base class. When used, this method should return a string that ends with a "."; see BaseTask::configPrefix().

Return Value

string

static protected configClassIdentifier($classname)

No description

Parameters

$classname

static protected configPostfix()

No description

static configure(string $key, mixed $value, ConfigInterface|null $config = null)

No description

Parameters

string $key
mixed $value
ConfigInterface|null $config

protected mixed|null getConfigValue(string $key, mixed|null $default = null)

No description

Parameters

string $key
mixed|null $default

Return Value

mixed|null

$this setVerbosityThreshold(int $verbosityThreshold)

Required verbosity level before any TaskIO output will be produced.

e.g. OutputInterface::VERBOSITY_VERBOSE

Parameters

int $verbosityThreshold

Return Value

$this

int verbosityThreshold()

No description

Return Value

int

setOutputAdapter(OutputAdapterInterface $outputAdapter)

No description

Parameters

OutputAdapterInterface $outputAdapter

bool hasOutputAdapter()

No description

Return Value

bool

bool verbosityMeetsThreshold()

No description

Return Value

bool

writeMessage(string $message)

Print a message if the selected verbosity level is over this task's verbosity threshold.

Parameters

string $message

$this setOutput(OutputInterface $output)

No description

Parameters

OutputInterface $output

Return Value

$this

See also

\Robo\Contract\OutputAwareInterface::setOutput()

protected OutputInterface output()

No description

Return Value

OutputInterface

protected OutputInterface stderr()

No description

Return Value

OutputInterface

protected OutputInterface getOutput() deprecated

deprecated

Backwards compatibility

Return Value

OutputInterface

null|LoggerInterface logger() deprecated

deprecated

No description

Return Value

null|LoggerInterface

protected printTaskInfo(string $text, null|array $context = null)

Print information about a task in progress.

With the Symfony Console logger, NOTICE is displayed at VERBOSITY_VERBOSE and INFO is displayed at VERBOSITY_VERY_VERBOSE.

Robo overrides the default such that NOTICE is displayed at VERBOSITY_NORMAL and INFO is displayed at VERBOSITY_VERBOSE.

n.b. We should probably have printTaskNotice for our ordinary output, and use printTaskInfo for less interesting messages.

Parameters

string $text
null|array $context

protected printTaskSuccess(string $text, null|array $context = null)

Provide notification that some part of the task succeeded.

With the Symfony Console logger, success messages are remapped to NOTICE, and displayed in VERBOSITY_VERBOSE. When used with the Robo logger, success messages are displayed at VERBOSITY_NORMAL.

Parameters

string $text
null|array $context

protected printTaskWarning(string $text, null|array $context = null)

Provide notification that there is something wrong, but execution can continue.

Warning messages are displayed at VERBOSITY_NORMAL.

Parameters

string $text
null|array $context

protected printTaskError(string $text, null|array $context = null)

Provide notification that some operation in the task failed, and the task cannot continue.

Error messages are displayed at VERBOSITY_NORMAL.

Parameters

string $text
null|array $context

protected printTaskDebug($text, null|array $context = null)

Provide debugging notification. These messages are only displayed if the log level is VERBOSITY_DEBUG.

Parameters

$text
null|array $context

protected printTaskOutput(string $level, string $text, null|array $context) deprecated

deprecated

No description

Parameters

string $level

One of the \Psr\Log\LogLevel constant

string $text
null|array $context

protected bool hideTaskProgress()

No description

Return Value

bool

protected showTaskProgress(bool $inProgress)

No description

Parameters

bool $inProgress

protected string formatBytes(int $size, int $precision = 2)

Format a quantity of bytes.

Parameters

int $size
int $precision

Return Value

string

protected string getPrintedTaskName(null|object $task = null)

Get the formatted task name for use in task output.

This is placed in the task context under 'name', and used as the log label by Robo\Common\RoboLogStyle, which is inserted at the head of log messages by Robo\Common\CustomLogStyle::formatMessage().

Parameters

null|object $task

Return Value

string

protected array getTaskContext(null|array $context = null)

No description

Parameters

null|array $context

Return Value

array

Context information.

protected startTimer()

No description

protected stopTimer()

No description

protected resetTimer()

No description

protected float|null getExecutionTime()

No description

Return Value

float|null

int progressIndicatorSteps()

No description

Return Value

int

$this setProgressIndicator(null|ProgressIndicator $progressIndicator)

No description

Parameters

null|ProgressIndicator $progressIndicator

Return Value

$this

protected null|bool hideProgressIndicator()

No description

Return Value

null|bool

protected showProgressIndicator()

No description

protected restoreProgressIndicator(bool $visible)

No description

Parameters

bool $visible

protected int getTotalExecutionTime()

No description

Return Value

int

protected startProgressIndicator()

No description

protected bool inProgress()

No description

Return Value

bool

protected stopProgressIndicator()

No description

protected disableProgressIndicator()

No description

protected detatchProgressIndicator()

No description

protected advanceProgressIndicator(int $steps = 1)

No description

Parameters

int $steps

$this inflect(InflectionInterface|mixed $parent)

Ask the provided parent class to inject all of the dependencies that it has and we need.

Parameters

InflectionInterface|mixed $parent

Return Value

$this

injectDependencies(mixed $child)

Take all dependencies availble to this task and inject any that are needed into the provided task. The general pattern is that, for every FooAwareInterface that this class implements, it should test to see if the child also implements the same interface, and if so, should call $child->setFoo($this->foo).

The benefits of this are pretty large. Any time an object that implements InflectionInterface is created, just call $child->inflect($this), and any available optional dependencies will be hooked up via setter injection.

The required dependencies of an object should be provided via constructor injection, not inflection.

Parameters

mixed $child

An object with one or more *AwareInterfaces implemented.

__construct(string $filename = 'tmp', string $extension = '', string $baseDir = '', bool $includeRandomPart = true)

No description

Parameters

string $filename
string $extension
string $baseDir
bool $includeRandomPart

$this filename(string $filename)

No description

Parameters

string $filename

Return Value

$this

$this append(bool $append = true)

No description

Parameters

bool $append

Return Value

$this

$this line(string $line)

add a line.

Parameters

string $line

Return Value

$this

The current instance.

$this lines(array $lines)

add more lines.

Parameters

array $lines

Return Value

$this

The current instance.

$this text(string $text)

add a text.

Parameters

string $text

Return Value

$this

The current instance.

$this textFromFile(string $filename)

add a text from a file.

Note that the file is read in the run() method of this task. To load text from the current state of a file (e.g. one that may be deleted or altered by other tasks prior the execution of this one), use: $task->text(file_get_contents($filename));

Parameters

string $filename

Return Value

$this

The current instance.

$this place(string $name, string $val)

substitute a placeholder with value, placeholder must be enclosed by {}.

Parameters

string $name
string $val

Return Value

$this

The current instance.

$this replace(string $string, string $replacement)

replace any string with value.

Parameters

string $string
string $replacement

Return Value

$this

The current instance.

$this regexReplace(string $pattern, string $replacement)

replace any string with value using regular expression.

Parameters

string $pattern
string $replacement

Return Value

$this

The current instance.

$this appendIfMatches(string $pattern, string $text)

Append the provided text to the end of the buffer if the provided regex pattern matches any text already in the buffer.

Parameters

string $pattern
string $text

Return Value

$this

$this appendUnlessMatches(string $pattern, string $text)

Append the provided text to the end of the buffer unless the provided regex pattern matches any text already in the buffer.

Parameters

string $pattern
string $text

Return Value

$this

protected string textFromFileCollect(string $contents, string $filename)

No description

Parameters

string $contents
string $filename

Return Value

string

protected string|string[] replaceCollect(string|string[] $contents, string|string[] $string, string|string[] $replacement)

No description

Parameters

string|string[] $contents
string|string[] $string
string|string[] $replacement

Return Value

string|string[]

protected string|string[] regexReplaceCollect(string|string[] $contents, string|string[] $pattern, string|string[] $replacement)

No description

Parameters

string|string[] $contents
string|string[] $pattern
string|string[] $replacement

Return Value

string|string[]

protected string textCollect(string $contents, string $text)

No description

Parameters

string $contents
string $text

Return Value

string

protected string appendIfMatchesCollect(string $contents, string $pattern, string $text, bool $shouldMatch)

No description

Parameters

string $contents
string $pattern
string $text
bool $shouldMatch

Return Value

string

string originalContents()

No description

Return Value

string

bool wouldChange()

No description

Return Value

bool

protected string getContentsToWrite()

No description

Return Value

string

Result run()

No description

Return Value

Result

string getPath()

No description

Return Value

string

complete()

Delete this file when our collection completes.

If this temporary file is not part of a collection, then it will be deleted when the program terminates, presuming that it was created by taskTmpFile() or _tmpFile().