mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-12 19:54:12 +02:00
[ticket/11150] Preserve every packages of every phpbb types in composer-ext.json
PHPBB3-11150
This commit is contained in:
committed by
Tristan Darricau
parent
540bac3ba4
commit
779c9c8552
@@ -36,10 +36,15 @@ class manager implements manager_interface
|
||||
protected $exception_prefix;
|
||||
|
||||
/**
|
||||
* @var array Caches the managed packages list
|
||||
* @var array Caches the managed packages list (for the current type)
|
||||
*/
|
||||
private $managed_packages;
|
||||
|
||||
/**
|
||||
* @var array Caches the managed packages list (for all phpBB types)
|
||||
*/
|
||||
private $all_managed_packages;
|
||||
|
||||
/**
|
||||
* @var array Caches the available packages list
|
||||
*/
|
||||
@@ -84,7 +89,7 @@ class manager implements manager_interface
|
||||
*/
|
||||
protected function do_install($packages)
|
||||
{
|
||||
$managed_packages = array_merge($this->get_managed_packages(), $packages);
|
||||
$managed_packages = array_merge($this->get_all_managed_packages(), $packages);
|
||||
ksort($managed_packages);
|
||||
|
||||
$this->installer->install($managed_packages, array_keys($packages));
|
||||
@@ -110,7 +115,7 @@ class manager implements manager_interface
|
||||
throw new runtime_exception($this->exception_prefix, 'NOT_MANAGED', [implode('|', array_keys($not_managed))]);
|
||||
}
|
||||
|
||||
$managed_packages = array_merge($this->get_managed_packages(), $packages);
|
||||
$managed_packages = array_merge($this->get_all_managed_packages(), $packages);
|
||||
ksort($managed_packages);
|
||||
|
||||
$this->installer->install($managed_packages, array_keys($packages));
|
||||
@@ -134,7 +139,7 @@ class manager implements manager_interface
|
||||
throw new runtime_exception($this->exception_prefix, 'NOT_MANAGED', [implode('|', array_keys($not_managed))]);
|
||||
}
|
||||
|
||||
$managed_packages = array_diff_key($this->get_managed_packages(), $packages);
|
||||
$managed_packages = array_diff_key($this->get_all_managed_packages(), $packages);
|
||||
ksort($managed_packages);
|
||||
|
||||
$this->installer->install($managed_packages, array_keys($packages));
|
||||
@@ -154,7 +159,7 @@ class manager implements manager_interface
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of managed packages
|
||||
* Returns the list of managed packages for the current type
|
||||
*
|
||||
* @return array The managed packages associated to their version.
|
||||
*/
|
||||
@@ -168,6 +173,21 @@ class manager implements manager_interface
|
||||
return $this->managed_packages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of managed packages for all phpBB types
|
||||
*
|
||||
* @return array The managed packages associated to their version.
|
||||
*/
|
||||
public function get_all_managed_packages()
|
||||
{
|
||||
if ($this->all_managed_packages === null)
|
||||
{
|
||||
$this->all_managed_packages = $this->installer->get_installed_packages(installer::PHPBB_TYPES);
|
||||
}
|
||||
|
||||
return $this->all_managed_packages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of available packages
|
||||
*
|
||||
|
Reference in New Issue
Block a user