phpbb\console\command\update\check::check_all_ext PHP Method

check_all_ext() protected method

Check if all the available extensions are up to date
protected check_all_ext ( SymfonyStyle $io, $stability, boolean $recheck ) : integer
$io Symfony\Component\Console\Style\SymfonyStyle IO handler, for formatted and unified IO
$recheck boolean Disallow the use of the cache
return integer
    protected function check_all_ext(SymfonyStyle $io, $stability, $recheck)
    {
        /** @var \phpbb\extension\manager $ext_manager */
        $ext_manager = $this->phpbb_container->get('ext.manager');
        $rows = [];
        foreach ($ext_manager->all_available() as $ext_name => $ext_path) {
            $row = [];
            $row[] = sprintf("<info>%s</info>", $ext_name);
            $md_manager = $ext_manager->create_extension_metadata_manager($ext_name);
            try {
                $metadata = $md_manager->get_metadata('all');
                if (isset($metadata['extra']['version-check'])) {
                    try {
                        $updates_available = $ext_manager->version_check($md_manager, $recheck, false, $stability);
                        if (!empty($updates_available)) {
                            $versions = array_map(function ($entry) {
                                return $entry['current'];
                            }, $updates_available);
                            $row[] = sprintf("<comment>%s</comment>", $metadata['version']);
                            $row[] = implode(', ', $versions);
                        } else {
                            $row[] = sprintf("<info>%s</info>", $metadata['version']);
                            $row[] = '';
                        }
                    } catch (\RuntimeException $e) {
                        $row[] = $metadata['version'];
                        $row[] = '';
                    }
                } else {
                    $row[] = $metadata['version'];
                    $row[] = '';
                }
            } catch (exception_interface $e) {
                $exception_message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
                $row[] = '<error>' . $exception_message . '</error>';
            } catch (\RuntimeException $e) {
                $row[] = '<error>' . $e->getMessage() . '</error>';
            }
            $rows[] = $row;
        }
        $io->table([$this->language->lang('EXTENSION_NAME'), $this->language->lang('CURRENT_VERSION'), $this->language->lang('LATEST_VERSION')], $rows);
        return 0;
    }