UpdateManager
class UpdateManager implements UpdateManagerInterface (View source)
Default implementation of UpdateManagerInterface.
Traits
Provides dependency injection friendly methods for serialization.
Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.
Properties
| protected array | $_serviceIds | An array of service IDs keyed by property name used for serialization. |
from DependencySerializationTrait |
| protected array | $_entityStorages | An array of entity type IDs keyed by the property name of their storages. |
from DependencySerializationTrait |
| protected TranslationInterface | $stringTranslation | The string translation service. |
from StringTranslationTrait |
| protected Config | $updateSettings | The update settings. |
|
| protected ModuleHandlerInterface | $moduleHandler | Module Handler Service. |
|
| protected UpdateProcessorInterface | $updateProcessor | Update Processor Service. |
|
| protected array | $projects | An array of installed and enabled projects. |
|
| protected KeyValueStoreExpirableInterface | $keyValueStore | The key/value store. |
|
| protected KeyValueStoreExpirableInterface | $availableReleasesTempStore | Update available releases key/value store. |
|
| protected ThemeHandlerInterface | $themeHandler | The theme handler. |
|
| protected ModuleExtensionList | $moduleExtensionList | The module extension list. |
Methods
Translates a string to the current language or to a given language.
Formats a string containing a count of items.
Returns the number of plurals supported by a given language.
Gets the string translation service.
Constructs an UpdateManager.
Clears out all the available update data and initiates re-fetching.
Fetches an array of installed and enabled projects.
Retrieves update storage data or empties it.
Processes a step in batch for fetching available update data.
Details
__sleep()
{@inheritdoc}
__wakeup()
{@inheritdoc}
protected TranslatableMarkup
t(string $string, array $args = [], array $options = [])
Translates a string to the current language or to a given language.
See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for important security information and usage guidelines.
In order for strings to be localized, make them available in one of the ways supported by the
protected
formatPlural($count, $singular, $plural, array $args = [], array $options = [])
Formats a string containing a count of items.
protected
getNumberOfPlurals($langcode = NULL)
Returns the number of plurals supported by a given language.
protected TranslationInterface
getStringTranslation()
Gets the string translation service.
$this
setStringTranslation(TranslationInterface $translation)
Sets the string translation service to use.
__construct(ConfigFactoryInterface $config_factory, ModuleHandlerInterface $module_handler, UpdateProcessorInterface $update_processor, TranslationInterface $translation, KeyValueFactoryInterface $key_value_expirable_factory, ThemeHandlerInterface $theme_handler, ModuleExtensionList $extension_list_module)
Constructs an UpdateManager.
refreshUpdateData()
Clears out all the available update data and initiates re-fetching.
array
getProjects()
Fetches an array of installed and enabled projects.
This is only responsible for generating an array of projects (taking into account projects that include more than one module or theme). Other information like the specific version and install type (official release, dev snapshot, etc) is handled later in update_process_project_info() since that logic is only required when preparing the status report, not for fetching the available release data.
This array is fairly expensive to construct, since it involves a lot of disk I/O, so we store the results. However, since this is not the data about available updates fetched from the network, it is acceptable to invalidate it somewhat quickly. If we keep this data for very long, site administrators are more likely to see incorrect results if they upgrade to a newer version of a module or theme but do not visit certain pages that automatically clear this data.
array
projectStorage(string $key)
Retrieves update storage data or empties it.
Two very expensive arrays computed by this module are the list of all installed modules and themes (and .info.yml data, project associations, etc), and the current status of the site relative to the currently available releases. These two arrays are stored and used whenever possible. The data is cleared whenever the administrator visits the status report, available updates report, or the module or theme administration pages, since we should always recompute the most current values on any of those pages.
Note: while both of these arrays are expensive to compute (in terms of disk I/O and some fairly heavy CPU processing), neither of these is the actual data about available updates that we have to fetch over the network from updates.drupal.org. That information is stored in the 'update_available_releases' collection -- it needs to persist longer than 1 hour and never get invalidated just by visiting a page on the site.
fetchDataBatch(array $context)
Processes a step in batch for fetching available update data.
Before calling this method, call UpdateManagerInterface::refreshUpdateData() to clear existing update data and initiate re-fetching.