mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[ticket/13126] Extends migrator_output_handler instead of using a closure
PHPBB3-13126
This commit is contained in:
parent
56d7c2c6ed
commit
58075e25e8
5 changed files with 125 additions and 57 deletions
|
@ -174,18 +174,7 @@ define('IN_DB_UPDATE', true);
|
||||||
// End startup code
|
// End startup code
|
||||||
|
|
||||||
$migrator = $phpbb_container->get('migrator');
|
$migrator = $phpbb_container->get('migrator');
|
||||||
$migrator->set_output_handler(
|
$migrator->set_output_handler(new \phpbb\db\html_migrator_output_handler($user));
|
||||||
new \phpbb\db\migrator_output_handler(
|
|
||||||
function($message, $verbosity) use ($user)
|
|
||||||
{
|
|
||||||
if ($verbosity <= \phpbb\db\migrator_output_handler::VERBOSITY_NORMAL)
|
|
||||||
{
|
|
||||||
$final_message = call_user_func_array(array($user, 'lang'), $message);
|
|
||||||
echo $final_message . "<br />\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
$migrator->create_migrations_table();
|
$migrator->create_migrations_table();
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -53,29 +53,7 @@ class migrate extends \phpbb\console\command\command
|
||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
$user = $this->user;
|
$this->migrator->set_output_handler(new console_migrator_output_handler($this->user, $output));
|
||||||
$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->create_migrations_table();
|
$this->migrator->create_migrations_table();
|
||||||
|
|
||||||
|
|
51
phpBB/phpbb/db/html_migrator_output_handler.php
Normal file
51
phpBB/phpbb/db/html_migrator_output_handler.php
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
<?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\db;
|
||||||
|
|
||||||
|
use phpbb\user;
|
||||||
|
|
||||||
|
class html_migrator_output_handler extends migrator_output_handler
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* User object.
|
||||||
|
*
|
||||||
|
* @var user
|
||||||
|
*/
|
||||||
|
private $user;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param user $user User object
|
||||||
|
*/
|
||||||
|
public function __construct(user $user)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 <= migrator_output_handler::VERBOSITY_NORMAL)
|
||||||
|
{
|
||||||
|
$final_message = call_user_func_array(array($this->user, 'lang'), $message);
|
||||||
|
echo $final_message . "<br />\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,26 +21,6 @@ class migrator_output_handler
|
||||||
const VERBOSITY_VERY_VERBOSE = 3;
|
const VERBOSITY_VERY_VERBOSE = 3;
|
||||||
const VERBOSITY_DEBUG = 4;
|
const VERBOSITY_DEBUG = 4;
|
||||||
|
|
||||||
/**
|
|
||||||
* A callable used to write the output.
|
|
||||||
*
|
|
||||||
* @var callable
|
|
||||||
*/
|
|
||||||
private $closure;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* @param callable $closure The closure used to write the output. (null by default)
|
|
||||||
*/
|
|
||||||
public function __construct(\Closure $closure = null)
|
|
||||||
{
|
|
||||||
if ($closure === null) {
|
|
||||||
$closure = function($message, $verbosity) {};
|
|
||||||
}
|
|
||||||
$this->closure = $closure;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write output using the configured closure.
|
* Write output using the configured closure.
|
||||||
*
|
*
|
||||||
|
@ -49,7 +29,5 @@ class migrator_output_handler
|
||||||
*/
|
*/
|
||||||
public function write($message, $verbosity)
|
public function write($message, $verbosity)
|
||||||
{
|
{
|
||||||
$closure = $this->closure;
|
|
||||||
$closure((array) $message, $verbosity);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue