apigee_api_catalog.install in Apigee API Catalog 8
Same filename and directory in other branches
Copyright 2019 Google Inc.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
File
apigee_api_catalog.installView source
<?php
/**
* @file
* Copyright 2019 Google Inc.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 2 as published by the
* Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
* License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/**
* @file
* Install file for Apigee API Catalog.
*/
/**
* Implements hook_requirements().
*/
function apigee_api_catalog_requirements($phase) {
// Prevent installation alongside of the `apigee_edge_apidocs` module.
if ($phase === 'install' && \Drupal::moduleHandler()
->moduleExists('apigee_edge_apidocs')) {
return [
'apigee_api_catalog_module_conflict' => [
'title' => t('Apigee API Catalog'),
'description' => t('The "Apigee Edge API Docs" module is currently installed. It is deprecated and should be uninstalled before installing the Apigee API Catalog module.'),
'severity' => REQUIREMENT_ERROR,
],
];
}
return [];
}
/**
* Update the length of the name field.
*/
function apigee_api_catalog_update_8701() {
$entity_type_id = 'apidoc';
$field_name = 'name';
$field_length = 255;
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$last_installed_schema_repository = \Drupal::service('entity.last_installed_schema.repository');
$entity_type = $definition_update_manager
->getEntityType($entity_type_id);
// Update the field storage definition.
/** @var \Drupal\Core\Field\FieldStorageDefinitionInterface[] $field_storage_definitions */
$field_storage_definitions = $last_installed_schema_repository
->getLastInstalledFieldStorageDefinitions($entity_type_id);
$field_storage_definitions[$field_name]
->setSetting('max_length', $field_length);
$definition_update_manager
->updateFieldableEntityType($entity_type, $field_storage_definitions, $sandbox);
$definition = \Drupal::entityTypeManager()
->getDefinition($entity_type_id);
$data_table = $definition
->getDataTable();
$revision_data_table = $definition
->getRevisionDataTable();
$entity_storage_schema_sql = \Drupal::keyValue('entity.storage_schema.sql');
$schema_key = "{$entity_type_id}.field_schema_data.{$field_name}";
if ($field_schema_data = $entity_storage_schema_sql
->get($schema_key)) {
// Update storage schema for data table.
$field_schema_data[$data_table]['fields'][$field_name]['length'] = $field_length;
// Update storage schema for the revision table.
if ($revision_data_table) {
$field_schema_data[$revision_data_table]['fields'][$field_name]['length'] = $field_length;
}
$entity_storage_schema_sql
->set($schema_key, $field_schema_data);
// Update the base database field.
$schema = \Drupal::database()
->schema();
$schema
->changeField($data_table, $field_name, $field_name, $field_schema_data[$data_table]['fields'][$field_name]);
// Update schema for the revision table.
if ($revision_data_table) {
$schema
->changeField($revision_data_table, $field_name, $field_name, $field_schema_data[$revision_data_table]['fields'][$field_name]);
}
}
}
Functions
Name | Description |
---|---|
apigee_api_catalog_requirements | Implements hook_requirements(). |
apigee_api_catalog_update_8701 | Update the length of the name field. |