hook_install()
Perform setup tasks when the module is installed.
If the module implements hook_schema(), the database tables will be created before this hook is fired.
If the module provides a MODULE.routing.yml or alters routing information these changes will not be available when this hook is fired. If up-to-date router information is required, for example to use \Drupal\Core\Url, then (preferably) use hook_modules_installed() or rebuild the router in the hook_install() implementation.
Implementations of this hook are by convention declared in the module's .install file. The implementation can rely on the .module file being loaded. The hook will only be called when a module is installed. The module's schema version will be set to the module's greatest numbered update hook. Because of this, any time a hook_update_N() is added to the module, this function needs to be updated to reflect the current version of the database schema.
See the Schema API documentation for details on hook_schema and how database tables are defined.
Note that since this function is called from a full bootstrap, all functions (including those in modules enabled by the current page request) are available when this hook is called. Use cases could be displaying a user message, or calling a module function necessary for initial setup, etc.
Please be sure that anything added or modified in this function that can be removed during uninstall should be removed with hook_uninstall().
\Drupal\Core\Extension\ModuleHandler::install()
function hook_install() { // Create the styles directory and ensure it's writable. $directory = file_default_scheme() . '://styles'; $mode = isset($GLOBALS['install_state']['mode']) ? $GLOBALS['install_state']['mode'] : NULL; file_prepare_directory($directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS, $mode); }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Extension!module.api.php/function/hook_install/8.1.x