--- /dev/null
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the aggregator module.
+ */
+
+/**
+ * Implements hook_requirements().
+ */
+function aggregator_requirements($phase) {
+ $has_curl = function_exists('curl_init');
+ $requirements = [];
+ $requirements['curl'] = [
+ 'title' => t('cURL'),
+ 'value' => $has_curl ? t('Enabled') : t('Not found'),
+ ];
+ if (!$has_curl) {
+ $requirements['curl']['severity'] = REQUIREMENT_ERROR;
+ $requirements['curl']['description'] = t('The Aggregator module requires the <a href="https://secure.php.net/manual/en/curl.setup.php">PHP cURL library</a>. For more information, see the <a href="https://www.drupal.org/requirements/php/curl">online information on installing the PHP cURL extension</a>.');
+ }
+ return $requirements;
+}
+
+/**
+ * The simple presence of this update function clears cached field definitions.
+ */
+function aggregator_update_8001() {
+ // Feed ID base field is now required.
+}
+
+/**
+ * Make the 'Source feed' field for aggregator items required.
+ */
+function aggregator_update_8200() {
+ // aggregator_update_8001() did not update the last installed field storage
+ // definition for the aggregator item's 'Source feed' field.
+ $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
+ $field_definition = $definition_update_manager->getFieldStorageDefinition('fid', 'aggregator_item');
+ $field_definition->setRequired(TRUE);
+ $definition_update_manager->updateFieldStorageDefinition($field_definition);
+}