CreateProject
class CreateProject extends Base (View source)
Composer CreateProject
<?php
// simple execution
$this->taskComposerCreateProject()->source('foo/bar')->target('myBar')->run();
?>
Traits
This task specifies exactly one shell command.
This task is supposed to be executed as shell command.
Use this to add arguments and options to the $arguments property.
Class ExecTrait
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.
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 bool | $background | from ExecTrait | |
protected null|int | $timeout | from ExecTrait | |
protected null|int | $idleTimeout | from ExecTrait | |
protected null|array | $env | from ExecTrait | |
protected Process | $process | from ExecTrait | |
protected resource|string | $input | from ExecTrait | |
protected bool | $interactive | from ExecTrait | |
protected bool | $isPrinted | from ExecTrait | |
protected bool | $isMetadataPrinted | from ExecTrait | |
protected string | $workingDirectory | from ExecTrait | |
protected TimeKeeper | $execTimer | from ExecCommand | |
protected string | $arguments | from CommandArguments | |
protected string | $command | from Base | |
protected bool | $built | from Base | |
protected string | $prefer | from Base | |
protected string | $dev | from Base | |
protected string | $ansi | from Base | |
protected string | $nointeraction | from Base | |
protected | $action | {@inheritdoc} | |
protected | $source | ||
protected string | $target | ||
protected string | $version |
Methods
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().
No description
No description
Required verbosity level before any TaskIO output will be produced.
Print a message if the selected verbosity level is over this task's verbosity threshold.
Print information about a task in progress.
Provide notification that some part of the task succeeded.
Provide notification that there is something wrong, but execution can continue.
Provide notification that some operation in the task failed, and the task cannot continue.
Provide debugging notification. These messages are only displayed if the log level is VERBOSITY_DEBUG.
Get the formatted task name for use in task output.
Ask the provided parent class to inject all of the dependencies that it has and we need.
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).
Executes command in background mode (asynchronously)
Stops command if it does not output something for a while
Set a single environment variable, or multiple.
Pass an input to the process. Can be resource created with fopen() or string
Pass an input to the process. Can be resource created with fopen() or string
Attach tty to process for interactive input
Shortcut for setting isPrinted() and isMetadataPrinted() to false.
Should command metadata be printed. I,e., command and timer.
Look for a "{$cmd}.phar" in the current working directory; return a string to exec it if it is found. Otherwise, look for an executable command of the same name via findExecutable.
Return the best path to the executable program with the provided name. Favor vendor/bin in the current project. If not found there, use whatever is on the $PATH.
Wrap Windows executables in 'call' per 7a88757d
Pass argument to executable. Its value will be automatically escaped.
Pass methods parameters as arguments to executable. Argument values are automatically escaped.
Pass the provided string in its raw (as provided) form as an argument to executable.
Escape the provided value, unless it contains only alphanumeric plus a few other basic characters.
Pass option to executable. Options are prefixed with --
, value can be provided in second parameter.
Pass multiple options to executable. The associative array contains
the key:value pairs that become --key value
, for each item in the array.
Pass an option with multiple values to executable. Value can be a string or array.
adds optimize-autoloader
option to composer
adds ignore-platform-reqs
option to composer
Copy class fields into command options as directed.
No description
No description
No description
No description
No description
No description
No description
Details
$this
setConfig(ConfigInterface $config)
Set the config management object.
ConfigInterface
getConfig()
Get the config management object.
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().
static protected
configClassIdentifier($classname)
No description
static protected
configPostfix()
No description
static
configure(string $key, mixed $value, ConfigInterface|null $config = null)
No description
protected 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.
e.g. OutputInterface::VERBOSITY_VERBOSE
int
verbosityThreshold()
No description
setOutputAdapter(OutputAdapterInterface $outputAdapter)
No description
OutputAdapterInterface
outputAdapter()
No description
bool
hasOutputAdapter()
No description
bool
verbosityMeetsThreshold()
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
protected OutputInterface
output()
No description
protected OutputInterface
stderr()
No description
protected OutputInterface
getOutput()
deprecated
deprecated
Backwards compatibility
in
TaskIO at line 49
null|LoggerInterface
logger()
deprecated
deprecated
No description
in
TaskIO at line 85
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.
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.
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.
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.
protected
printTaskDebug($text, null|array $context = null)
Provide debugging notification. These messages are only displayed if the log level is VERBOSITY_DEBUG.
protected
printTaskOutput(string $level, string $text, null|array $context)
deprecated
deprecated
No description
protected bool
hideTaskProgress()
No description
protected
showTaskProgress(bool $inProgress)
No description
protected string
formatBytes(int $size, int $precision = 2)
Format a quantity of bytes.
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().
protected array
getTaskContext(null|array $context = null)
No description
in
Timer at line 12
protected
startTimer()
No description
in
Timer at line 20
protected
stopTimer()
No description
in
Timer at line 28
protected
resetTimer()
No description
in
Timer at line 36
protected float|null
getExecutionTime()
No description
int
progressIndicatorSteps()
No description
$this
setProgressIndicator(null|ProgressIndicator $progressIndicator)
No description
protected null|bool
hideProgressIndicator()
No description
protected
showProgressIndicator()
No description
protected
restoreProgressIndicator(bool $visible)
No description
protected int
getTotalExecutionTime()
No description
protected
startProgressIndicator()
No description
protected bool
inProgress()
No description
protected
stopProgressIndicator()
No description
protected
disableProgressIndicator()
No description
protected
detatchProgressIndicator()
No description
protected
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).
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.
abstract string
getCommandDescription()
No description
$this
detectInteractive()
Sets $this->interactive() based on posix_isatty().
$this
background(bool $arg = true)
Executes command in background mode (asynchronously)
$this
timeout(int $timeout)
Stop command if it runs longer then $timeout in seconds
$this
idleTimeout(int $timeout)
Stops command if it does not output something for a while
$this
env(string|array $env, bool|string $value = null)
Set a single environment variable, or multiple.
$this
envVars(array $env)
Sets the environment variables for the command
$this
setProcessInput(resource|string $input)
Pass an input to the process. Can be resource created with fopen() or string
$this
setInput(resource|string $input)
deprecated
deprecated
Pass an input to the process. Can be resource created with fopen() or string
$this
interactive(bool $interactive = true)
Attach tty to process for interactive input
bool
getPrinted()
Is command printing its output to screen
$this
dir(string $dir)
Changes working directory of command
$this
silent(bool $arg)
Shortcut for setting isPrinted() and isMetadataPrinted() to false.
$this
printed(bool $arg)
deprecated
deprecated
Should command output be printed
$this
printOutput(bool $arg)
Should command output be printed
$this
printMetadata(bool $arg)
Should command metadata be printed. I,e., command and timer.
protected ResultData
execute(Process $process, callable $output_callback = null)
No description
protected
stop()
No description
protected
printAction(array $context = [])
No description
protected string
formatCommandDisplay(string $command)
No description
protected array
getResultData()
Gets the data array to be passed to Result().
protected TimeKeeper
getExecTimer()
No description
protected bool|string
findExecutablePhar(string $cmd)
Look for a "{$cmd}.phar" in the current working directory; return a string to exec it if it is found. Otherwise, look for an executable command of the same name via findExecutable.
protected bool|string
findExecutable(string $cmd)
Return the best path to the executable program with the provided name. Favor vendor/bin in the current project. If not found there, use whatever is on the $PATH.
protected bool|string
findProjectBin()
No description
protected string
useCallOnWindows(string $cmd)
Wrap Windows executables in 'call' per 7a88757d
protected Result
executeCommand(string $command)
No description
$this
arg(string $arg)
Pass argument to executable. Its value will be automatically escaped.
$this
args(string|string[] $args)
Pass methods parameters as arguments to executable. Argument values are automatically escaped.
$this
rawArg(string $arg)
Pass the provided string in its raw (as provided) form as an argument to executable.
static string
escape(string $value)
Escape the provided value, unless it contains only alphanumeric plus a few other basic characters.
$this
option(string $option, string $value = null, string $separator = ' ')
Pass option to executable. Options are prefixed with --
, value can be provided in second parameter.
Option values are automatically escaped.
$this
options(array $options, string $separator = ' ')
Pass multiple options to executable. The associative array contains
the key:value pairs that become --key value
, for each item in the array.
Values are automatically escaped.
$this
optionList(string $option, string|array $value = array(), string $separator = ' ')
Pass an option with multiple values to executable. Value can be a string or array.
Option values are automatically escaped.
in
Base at line 56
__construct(null|string $pathToComposer = null)
No description
in
Base at line 74
$this
preferDist(bool $preferDist = true)
adds prefer-dist
option to composer
in
Base at line 88
$this
preferSource()
adds prefer-source
option to composer
in
Base at line 101
$this
dev(bool $dev = true)
adds dev
option to composer
in
Base at line 115
$this
noDev()
adds no-dev
option to composer
in
Base at line 128
$this
ansi(bool $ansi = true)
adds ansi
option to composer
in
Base at line 142
$this
noAnsi()
adds no-ansi
option to composer
in
Base at line 153
$this
interaction(bool $interaction = true)
No description
in
Base at line 166
$this
noInteraction()
adds no-interaction
option to composer
in
Base at line 179
$this
optimizeAutoloader(bool $optimize = true)
adds optimize-autoloader
option to composer
in
Base at line 194
$this
ignorePlatformRequirements(bool $ignore = true)
adds ignore-platform-reqs
option to composer
in
Base at line 207
$this
disablePlugins(bool $disable = true)
disable plugins
in
Base at line 222
$this
noScripts(bool $disable = true)
skip scripts
in
Base at line 237
$this
workingDir(string $dir)
adds --working-dir $dir
option to composer
buildCommand()
Copy class fields into command options as directed.
in
Base at line 263
string
getCommand()
Returns command that can be executed.
This method is used to pass generated command from one task to another.
$this
source(string $source)
No description
$this
target(string $target)
No description
$this
version(string $version)
No description
$this
keepVcs(bool $keep = true)
No description
$this
noInstall(bool $noInstall = true)
No description
$this
repository(string $repository)
No description
$this
stability(string $stability)
No description
Result
run()
No description