mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/11150] CS
PHPBB3-11150
This commit is contained in:
parent
4617037feb
commit
718ca44a06
8 changed files with 124 additions and 45 deletions
|
@ -2975,4 +2975,5 @@ fieldset.permissions .permissions-switch {
|
|||
color: #f1f1f1;
|
||||
font-family: monospace;
|
||||
overflow-x:scroll;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ services:
|
|||
class: phpbb\composer\installer
|
||||
arguments:
|
||||
- '%core.root_path%'
|
||||
- '@filesystem'
|
||||
- '@config'
|
||||
|
||||
ext.composer.manager:
|
||||
|
|
|
@ -20,6 +20,7 @@ use Composer\IO\NullIO;
|
|||
use Composer\Json\JsonFile;
|
||||
use Composer\Package\BasePackage;
|
||||
use Composer\Package\CompletePackage;
|
||||
use Composer\Package\Link;
|
||||
use Composer\Package\PackageInterface;
|
||||
use Composer\Repository\ComposerRepository;
|
||||
use Composer\Repository\RepositoryInterface;
|
||||
|
@ -27,6 +28,7 @@ use Composer\Semver\Constraint\ConstraintInterface;
|
|||
use Composer\Util\RemoteFilesystem;
|
||||
use phpbb\config\config;
|
||||
use phpbb\exception\runtime_exception;
|
||||
use phpbb\filesystem\filesystem;
|
||||
|
||||
/**
|
||||
* Class to install packages through composer while freezing core dependencies.
|
||||
|
@ -77,9 +79,10 @@ class installer
|
|||
|
||||
/**
|
||||
* @param string $root_path phpBB root path
|
||||
* @param filesystem $filesystem Filesystem object
|
||||
* @param config $config Config object
|
||||
*/
|
||||
public function __construct($root_path, config $config = null)
|
||||
public function __construct($root_path, filesystem $filesystem, config $config = null)
|
||||
{
|
||||
if ($config)
|
||||
{
|
||||
|
@ -91,12 +94,14 @@ class installer
|
|||
}
|
||||
|
||||
$this->packagist = (bool) $config['exts_composer_packagist'];
|
||||
$this->composer_filename = $config['exts_composer_json_file'];
|
||||
$this->composer_filenam = $config['exts_composer_json_file'];
|
||||
$this->packages_vendor_dir = $config['exts_composer_vendor_dir'];
|
||||
$this->minimum_stability = $config['exts_composer_minimum_stability'];
|
||||
}
|
||||
|
||||
$this->root_path = $root_path;
|
||||
|
||||
putenv('COMPOSER_HOME=' . $filesystem->realpath($root_path) . 'store/composer');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -119,7 +124,7 @@ class installer
|
|||
$this->do_install($packages, $whitelist, $io);
|
||||
$this->restore_cwd();
|
||||
}
|
||||
catch (\Exception $e)
|
||||
catch (runtime_exception $e)
|
||||
{
|
||||
$this->restore_cwd();
|
||||
throw $e;
|
||||
|
@ -175,6 +180,7 @@ class installer
|
|||
{
|
||||
$this->restore_ext_json_file();
|
||||
$this->restore_cwd();
|
||||
|
||||
throw new runtime_exception('COMPOSER_CANNOT_INSTALL', [], $e);
|
||||
}
|
||||
|
||||
|
@ -182,6 +188,7 @@ class installer
|
|||
{
|
||||
$this->restore_ext_json_file();
|
||||
$this->restore_cwd();
|
||||
|
||||
throw new runtime_exception($io->get_composer_error(), []);
|
||||
}
|
||||
}
|
||||
|
@ -192,6 +199,8 @@ class installer
|
|||
* @param string|array $types Returns only the packages with the given type(s)
|
||||
*
|
||||
* @return array The installed packages associated to their version.
|
||||
*
|
||||
* @throws runtime_exception
|
||||
*/
|
||||
public function get_installed_packages($types)
|
||||
{
|
||||
|
@ -203,7 +212,7 @@ class installer
|
|||
$result = $this->do_get_installed_packages($types);
|
||||
$this->restore_cwd();
|
||||
}
|
||||
catch (\Exception $e)
|
||||
catch (runtime_exception $e)
|
||||
{
|
||||
$this->restore_cwd();
|
||||
throw $e;
|
||||
|
@ -231,6 +240,8 @@ class installer
|
|||
$composer = Factory::create($io, $this->get_composer_ext_json_filename(), false);
|
||||
|
||||
$installed = [];
|
||||
|
||||
/** @var Link[] $required_links */
|
||||
$required_links = $composer->getPackage()->getRequires();
|
||||
$installed_packages = $composer->getRepositoryManager()->getLocalRepository()->getCanonicalPackages();
|
||||
|
||||
|
@ -260,6 +271,8 @@ class installer
|
|||
* @param string $type Returns only the packages with the given type
|
||||
*
|
||||
* @return array The name of the available packages, associated to their definition. Ordered by name.
|
||||
*
|
||||
* @throws runtime_exception
|
||||
*/
|
||||
public function get_available_packages($type)
|
||||
{
|
||||
|
@ -271,7 +284,7 @@ class installer
|
|||
$result = $this->do_get_available_packages($type);
|
||||
$this->restore_cwd();
|
||||
}
|
||||
catch (\Exception $e)
|
||||
catch (runtime_exception $e)
|
||||
{
|
||||
$this->restore_cwd();
|
||||
throw $e;
|
||||
|
@ -488,7 +501,6 @@ class installer
|
|||
'replace' => $core_packages,
|
||||
'repositories' => $this->get_composer_repositories(),
|
||||
'config' => [
|
||||
'cache-dir' => 'store/composer',
|
||||
'vendor-dir'=> $this->packages_vendor_dir,
|
||||
],
|
||||
'minimum-stability' => $this->minimum_stability,
|
||||
|
|
|
@ -19,7 +19,7 @@ use Symfony\Component\Console\Helper\HelperSet;
|
|||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
class console_io extends ConsoleIO
|
||||
class console_io extends ConsoleIO implements io_interface
|
||||
{
|
||||
use translate_composer_trait;
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ class html_output_formatter extends \Composer\Console\HtmlOutputFormatter
|
|||
34 => 'blue',
|
||||
35 => 'magenta',
|
||||
36 => 'cyan',
|
||||
37 => 'white'
|
||||
37 => 'white',
|
||||
];
|
||||
|
||||
protected static $availableBackgroundColors = [
|
||||
|
@ -34,10 +34,11 @@ class html_output_formatter extends \Composer\Console\HtmlOutputFormatter
|
|||
44 => 'blue',
|
||||
45 => 'magenta',
|
||||
46 => 'cyan',
|
||||
47 => 'white'
|
||||
47 => 'white',
|
||||
];
|
||||
|
||||
protected static $availableOptions = [
|
||||
protected static $availableOptions
|
||||
= [
|
||||
1 => 'bold',
|
||||
4 => 'underscore',
|
||||
//5 => 'blink',
|
||||
|
@ -52,7 +53,7 @@ class html_output_formatter extends \Composer\Console\HtmlOutputFormatter
|
|||
{
|
||||
$formatted = parent::format($message);
|
||||
|
||||
return preg_replace_callback("{[\033\e]\[([0-9;]+)m(.*?)[\033\e]\[[0-9;]+m}s", array($this, 'formatHtml'), $formatted);
|
||||
return preg_replace_callback("{[\033\e]\[([0-9;]+)m(.*?)[\033\e]\[[0-9;]+m}s", [$this, 'formatHtml'], $formatted);
|
||||
}
|
||||
|
||||
protected function formatHtml($matches)
|
||||
|
|
32
phpBB/phpbb/composer/io/io_interface.php
Normal file
32
phpBB/phpbb/composer/io/io_interface.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?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\composer\io;
|
||||
|
||||
use Composer\IO\ConsoleIO;
|
||||
use Composer\IO\IOInterface;
|
||||
use Composer\IO\NullIO;
|
||||
use phpbb\language\language;
|
||||
use Symfony\Component\Console\Helper\HelperSet;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
interface io_interface extends IOInterface
|
||||
{
|
||||
/**
|
||||
* Returns the composer errors that occurred since the last tcall of the method.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_composer_error();
|
||||
}
|
32
phpBB/phpbb/composer/io/null_io.php
Normal file
32
phpBB/phpbb/composer/io/null_io.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?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\composer\io;
|
||||
|
||||
use Composer\IO\ConsoleIO;
|
||||
use Composer\IO\NullIO;
|
||||
use phpbb\language\language;
|
||||
use Symfony\Component\Console\Helper\HelperSet;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
class console_io extends NullIO implements io_interface
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_composer_error()
|
||||
{
|
||||
return '';
|
||||
}
|
||||
}
|
|
@ -18,7 +18,7 @@ use phpbb\language\language;
|
|||
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
|
||||
use Symfony\Component\Console\Output\StreamOutput;
|
||||
|
||||
class web_io extends BufferIO
|
||||
class web_io extends BufferIO implements io_interface
|
||||
{
|
||||
use translate_composer_trait;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue