Back to CliApplication class

Method __construct

public
__construct
(\Joomla\Input\Input $input = null, \Joomla\Registry\Registry $config = null, \Joomla\CMS\Application\CLI\CliOutput $output = null, \Joomla\CMS\Application\CLI\CliInput $cliInput = null, \Joomla\Event\DispatcherInterface $dispatcher = null, \Joomla\DI\Container $container = null)
Class constructor.
Parameters
  • \Joomla\Input\Input $input An optional argument to provide dependency injection for the application's input object. If the argument is a JInputCli object that object will become the application's input object, otherwise a default input object is created.
  • \Joomla\Registry\Registry $config An optional argument to provide dependency injection for the application's config object. If the argument is a Registry object that object will become the application's config object, otherwise a default config object is created.
  • \Joomla\CMS\Application\CLI\CliOutput $output The output handler.
  • \Joomla\CMS\Application\CLI\CliInput $cliInput The CLI input handler.
  • \Joomla\Event\DispatcherInterface $dispatcher An optional argument to provide dependency injection for the application's event dispatcher. If the argument is a DispatcherInterface object that object will become the application's event dispatcher, if it is null then the default event dispatcher will be created based on the application's loadDispatcher() method.
  • \Joomla\DI\Container $container Dependency injection container.
Since
  • 1.7.0

Method __construct - Source code

/**
 * Class constructor.
 *
 * @param   Input                $input       An optional argument to provide dependency injection for the application's
 *                                            input object.  If the argument is a JInputCli object that object will become
 *                                            the application's input object, otherwise a default input object is created.
 * @param   Registry             $config      An optional argument to provide dependency injection for the application's
 *                                            config object.  If the argument is a Registry object that object will become
 *                                            the application's config object, otherwise a default config object is created.
 * @param   CliOutput            $output      The output handler.
 * @param   CliInput             $cliInput    The CLI input handler.
 * @param   DispatcherInterface  $dispatcher  An optional argument to provide dependency injection for the application's
 *                                            event dispatcher.  If the argument is a DispatcherInterface object that object will become
 *                                            the application's event dispatcher, if it is null then the default event dispatcher
 *                                            will be created based on the application's loadDispatcher() method.
 * @param   Container            $container   Dependency injection container.
 *
 * @since   1.7.0
 */
public function __construct(Input $input = null, Registry $config = null, CliOutput $output = null, CliInput $cliInput = null, DispatcherInterface $dispatcher = null, Container $container = null)
{
    // Close the application if we are not executed from the command line.
    if (!\defined('STDOUT') || !\defined('STDIN') || !isset($_SERVER['argv'])) {
        $this->close();
    }
    $container = $container ?: Factory::getContainer();
    $this->setContainer($container);
    $this->setDispatcher($dispatcher ?: $container->get(\Joomla\Event\DispatcherInterface::class));
    if (!$container->has('session')) {
        $container->alias('session', 'session.cli')->alias('JSession', 'session.cli')->alias(\Joomla\CMS\Session\Session::class, 'session.cli')->alias(\Joomla\Session\Session::class, 'session.cli')->alias(\Joomla\Session\SessionInterface::class, 'session.cli');
    }
    $this->input = new \Joomla\CMS\Input\Cli();
    $this->language = Factory::getLanguage();
    $this->output = $output ?: new Stdout();
    $this->cliInput = $cliInput ?: new CliInput();
    parent::__construct($config);
    // Set the current directory.
    $this->set('cwd', getcwd());
    // Set up the environment
    $this->input->set('format', 'cli');
}