abstract class PolyCommand (View source)

Abstract class for commands which can be run either via an HTTP request or the CLI.

Traits

Provides extensions to this object to integrate it with standard config API methods.

A class that can be instantiated or replaced via DI

Config options

can_run_in_cli bool

Defines whether this command can be run in the CLI via sake.

can_run_in_browser bool

Defines whether this command can be run in the browser via a web request.

permissions_for_browser_execution array

Permissions required for users to execute this command via the browser.

Properties

protected static string $commandName

Name of the command. Also used as the end of the URL segment for browser execution.

protected static string $description

Description of what the command does. Can use symfony console styling.

Methods

public static 
config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

public
mixed
uninherited(string $name)

Gets the uninherited value for the given config option

public static 
create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

public static 
singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

public
string
getTitle()

Get the title for this command.

public
int
run(InputInterface $input, PolyOutput $output)

Execute this command.

public static 
string
getName()

Get the name of this command.

public static 
string
getDescription()

Get the description of this command. Includes unparsed symfony/console styling.

public static 
string
getHelp()

Return additional help context to avoid an overly long description.

public
array
getOptions()

Get input options that can be passed into the command.

public
array
getOptionsForTemplate()

No description

public static 
bool
canRunInCli()

Check whether this command can be run in CLI via sake

public static 
bool
canRunInBrowser()

Check whether this command can be run in the browser via a web request

Details

static Config_ForClass config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

Return Value

Config_ForClass

mixed uninherited(string $name)

Gets the uninherited value for the given config option

Parameters

string $name

Return Value

mixed

static Injectable create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.

This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create(SiteTree::class); $list = SiteTree::get();

Parameters

mixed ...$args

Return Value

Injectable

static Injectable singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).

Parameters

string $class

Optional classname to create, if the called class should not be used

Return Value

Injectable

The singleton instance

abstract string getTitle()

Get the title for this command.

Return Value

string

abstract int run(InputInterface $input, PolyOutput $output)

Execute this command.

Output should be agnostic - do not include explicit HTML in the output unless there is no API on PolyOutput for what you want to do (in which case use the writeForHtml() method).

Use symfony/console ANSI formatting to style the output. See https://symfony.com/doc/current/console/coloring.html

Parameters

InputInterface $input
PolyOutput $output

Return Value

int

0 if everything went fine, or an exit code

static string getName()

Get the name of this command.

Return Value

string

static string getDescription()

Get the description of this command. Includes unparsed symfony/console styling.

Return Value

string

static string getHelp()

Return additional help context to avoid an overly long description.

Return Value

string

array getOptions()

Get input options that can be passed into the command.

In CLI execution these will be passed as flags. In HTTP execution these will be passed in the query string.

Return Value

array

array getOptionsForTemplate()

No description

Return Value

array

static bool canRunInCli()

Check whether this command can be run in CLI via sake

Return Value

bool

static bool canRunInBrowser()

Check whether this command can be run in the browser via a web request

Return Value

bool