DevCommand
abstract class DevCommand extends PolyCommand (View source)
A command that can be run from CLI or via an HTTP request in a dev/* route
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. |
from PolyCommand |
can_run_in_browser | bool | Defines whether this command can be run in the browser via a web request. |
from PolyCommand |
permissions_for_browser_execution | array |
Properties
protected static | string | $commandName | Name of the command. Also used as the end of the URL segment for browser execution. |
from PolyCommand |
protected static | string | $description | Description of what the command does. Can use symfony console styling. |
from PolyCommand |
Methods
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).
Gets the uninherited value for the given config option
An implementation of the factory method, allows you to create an instance of a class
Creates a class instance by the "singleton" design pattern.
Get the description of this command. Includes unparsed symfony/console styling.
Return additional help context to avoid an overly long description.
Check whether this command can be run in CLI via sake
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, .....).
mixed
uninherited(string $name)
Gets the uninherited value for the given config option
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();
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).
abstract string
getTitle()
Get the title for this command.
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
static string
getName()
Get the name of this command.
static string
getDescription()
Get the description of this command. Includes unparsed symfony/console styling.
static string
getHelp()
Return additional help context to avoid an overly long description.
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.
array
getOptionsForTemplate()
No description
static bool
canRunInCli()
Check whether this command can be run in CLI via sake
static bool
canRunInBrowser()
Check whether this command can be run in the browser via a web request
abstract protected int
execute(InputInterface $input, PolyOutput $output)
The code for running 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
abstract protected string
getHeading()
Content to output before command is executed.
In HTML format this will be an h2.