Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

application.php

Zuletzt modifiziert: 09.10.2024, 12:51 - Dateigröße: 2.81 KiB


001  <?php
002  /**
003  *
004  * This file is part of the phpBB Forum Software package.
005  *
006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
007  * @license GNU General Public License, version 2 (GPL-2.0)
008  *
009  * For full copyright and license information, please see
010  * the docs/CREDITS.txt file.
011  *
012  */
013   
014  namespace phpbb\console;
015   
016  use Symfony\Component\Console\Shell;
017  use Symfony\Component\Console\Input\InputInterface;
018  use Symfony\Component\Console\Input\InputOption;
019  use Symfony\Component\Console\Output\OutputInterface;
020   
021  class application extends \Symfony\Component\Console\Application
022  {
023      /**
024      * @var bool Indicates whether or not we are in a shell
025      */
026      protected $in_shell = false;
027   
028      /**
029      * @var \phpbb\user User object
030      */
031      protected $user;
032   
033      /**
034      * @param string            $name        The name of the application
035      * @param string            $version    The version of the application
036      * @param \phpbb\user    $user        The user which runs the application (used for translation)
037      */
038      public function __construct($name, $version, \phpbb\user $user)
039      {
040          $this->user = $user;
041   
042          parent::__construct($name, $version);
043      }
044   
045      /**
046      * {@inheritdoc}
047      */
048      protected function getDefaultInputDefinition()
049      {
050          $input_definition = parent::getDefaultInputDefinition();
051   
052          $input_definition->addOption(new InputOption(
053              'safe-mode',
054              null,
055              InputOption::VALUE_NONE,
056              $this->user->lang('CLI_DESCRIPTION_OPTION_SAFE_MODE')
057          ));
058   
059          return $input_definition;
060      }
061   
062      /**
063      * Gets the help message.
064      *
065      * It's a hack of the default help message to display the --shell
066      * option only for the application and not for all the commands.
067      *
068      * @return string A help message.
069      */
070      public function getHelp()
071      {
072          // If we are already in a shell
073          // we do not want to have the --shell option available
074          if ($this->in_shell)
075          {
076              return parent::getHelp();
077          }
078   
079          $this->getDefinition()->addOption(new InputOption(
080              '--shell',
081              '-s',
082              InputOption::VALUE_NONE,
083              $this->user->lang('CLI_DESCRIPTION_OPTION_SHELL')
084          ));
085   
086          return parent::getHelp();
087      }
088   
089      /**
090      * Register a set of commands from the container
091      *
092      * @param \phpbb\di\service_collection    $command_collection    The console service collection
093      */
094      public function register_container_commands(\phpbb\di\service_collection $command_collection)
095      {
096          foreach ($command_collection as $service_command)
097          {
098              $this->add($service_command);
099          }
100      }
101   
102      /**
103      * {@inheritdoc}
104      */
105      public function doRun(InputInterface $input, OutputInterface $output)
106      {
107          // Run a shell if the --shell (or -s) option is set and if no command name is specified
108          // Also, we do not want to have the --shell option available if we are already in a shell
109          if (!$this->in_shell && $this->getCommandName($input) === null && $input->hasParameterOption(array('--shell', '-s')))
110          {
111              $shell = new Shell($this);
112              $this->in_shell = true;
113              $shell->run();
114   
115              return 0;
116          }
117   
118          return parent::doRun($input, $output);
119      }
120  }
121