mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58: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
|
||||
|
||||
$migrator = $phpbb_container->get('migrator');
|
||||
$migrator->set_output_handler(
|
||||
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->set_output_handler(new \phpbb\db\html_migrator_output_handler($user));
|
||||
|
||||
$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)
|
||||
{
|
||||
$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();
|
||||
|
||||
|
|
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_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.
|
||||
*
|
||||
|
@ -49,7 +29,5 @@ class migrator_output_handler
|
|||
*/
|
||||
public function write($message, $verbosity)
|
||||
{
|
||||
$closure = $this->closure;
|
||||
$closure((array) $message, $verbosity);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue