lightning_api.install in Lightning API 8
Same filename and directory in other branches
File
lightning_api.installView source
<?php
use Drupal\Core\Language\LanguageInterface;
use Drupal\Core\Url;
use Symfony\Component\Routing\Exception\RouteNotFoundException;
/**
* Implements hook_install().
*/
function lightning_api_install() {
$module_handler = \Drupal::moduleHandler();
// If the openapi_redoc and jsonapi modules are installed, give the API
// documentation a nice path alias.
if ($module_handler
->moduleExists('openapi_redoc') && $module_handler
->moduleExists('jsonapi')) {
/** @var \Drupal\Core\Path\AliasStorageInterface $alias_storage */
$alias_storage = \Drupal::service('path.alias_storage');
$path = $alias_storage
->lookupPathSource('/api-docs', LanguageInterface::LANGCODE_NOT_SPECIFIED);
if (empty($path)) {
$route = 'openapi_redoc.jsonapi';
try {
\Drupal::urlGenerator()
->getPathFromRoute($route);
} catch (RouteNotFoundException $e) {
\Drupal::service('router.builder')
->rebuild();
}
$alias_storage
->save('/' . Url::fromRoute($route)
->getInternalPath(), '/api-docs');
}
}
}
/**
* Sets a default value for lightning_api.settings:bundle_docs.
*/
function lightning_api_update_8001() {
\Drupal::configFactory()
->getEditable('lightning_api.settings')
->set('bundle_docs', TRUE)
->save();
}
/**
* Installs the Consumers module.
*/
function lightning_api_update_8002() {
\Drupal::service('module_installer')
->install([
'consumers',
]);
}
Functions
Name | Description |
---|---|
lightning_api_install | Implements hook_install(). |
lightning_api_update_8001 | Sets a default value for lightning_api.settings:bundle_docs. |
lightning_api_update_8002 | Installs the Consumers module. |