1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 14:00:31 +02:00

[ticket/13126] Extends migrator_output_handler instead of using a closure

PHPBB3-13126
This commit is contained in:
Tristan Darricau
2014-10-16 01:34:23 +02:00
parent 56d7c2c6ed
commit 58075e25e8
5 changed files with 125 additions and 57 deletions

View File

@@ -0,0 +1,72 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\console\command\db;
use phpbb\user;
use phpbb\db\migrator_output_handler;
use Symfony\Component\Console\Output\OutputInterface;
class console_migrator_output_handler extends migrator_output_handler
{
/**
* User object.
*
* @var user
*/
private $user;
/**
* Console output object.
*
* @var OutputInterface
*/
private $output;
/**
* Constructor
*
* @param user $user User object
* @param OutputInterface $output Console output object
*/
public function __construct(user $user, OutputInterface $output)
{
$this->user = $user;
$this->output = $output;
}
/**
* Write output using the configured closure.
*
* @param string|array $message The message to write or an array containing the language key and all of its parameters.
* @param int $verbosity The verbosity of the message.
*/
public function write($message, $verbosity)
{
if ($verbosity <= $this->output->getVerbosity())
{
$translated_message = call_user_func_array(array($this->user, 'lang'), $message);
if ($verbosity === \phpbb\db\migrator_output_handler::VERBOSITY_NORMAL)
{
$translated_message = '<info>' . $translated_message . '</info>';
}
else if ($verbosity === \phpbb\db\migrator_output_handler::VERBOSITY_VERY_VERBOSE)
{
$translated_message = '<comment>' . $translated_message . '</comment>';
}
$this->output->writeln($translated_message);
}
}
}

View File

@@ -53,29 +53,7 @@ class migrate extends \phpbb\console\command\command
protected function execute(InputInterface $input, OutputInterface $output)
{
$user = $this->user;
$this->migrator->set_output_handler(
new \phpbb\db\migrator_output_handler(
function($message, $verbosity) use ($output, $user)
{
if ($verbosity <= $output->getVerbosity())
{
$final_message = call_user_func_array(array($user, 'lang'), $message);
if ($verbosity === \phpbb\db\migrator_output_handler::VERBOSITY_NORMAL)
{
$final_message = '<info>' . $final_message . '</info>';
}
else if ($verbosity === \phpbb\db\migrator_output_handler::VERBOSITY_VERY_VERBOSE)
{
$final_message = '<comment>' . $final_message . '</comment>';
}
$output->writeln($final_message);
}
}
)
);
$this->migrator->set_output_handler(new console_migrator_output_handler($this->user, $output));
$this->migrator->create_migrations_table();