--- /dev/null
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the {{ name }} module.
+ */
+
+/**
+ * Implements hook_install().
+ */
+function {{ machine_name }}_install() {
+ drupal_set_message(__FUNCTION__);
+}
+
+/**
+ * Implements hook_uninstall().
+ */
+function {{ machine_name }}_uninstall() {
+ drupal_set_message(__FUNCTION__);
+}
+
+/**
+ * Implements hook_schema().
+ */
+function {{ machine_name }}_schema() {
+ $schema['{{ machine_name }}_example'] = [
+ 'description' => 'Table description.',
+ 'fields' => [
+ 'id' => [
+ 'type' => 'serial',
+ 'not null' => TRUE,
+ 'description' => 'Primary Key: Unique record ID.',
+ ],
+ 'uid' => [
+ 'type' => 'int',
+ 'unsigned' => TRUE,
+ 'not null' => TRUE,
+ 'default' => 0,
+ 'description' => 'The {users}.uid of the user who created the record.',
+ ],
+ 'status' => [
+ 'description' => 'Boolean indicating whether this record is active.',
+ 'type' => 'int',
+ 'unsigned' => TRUE,
+ 'not null' => TRUE,
+ 'default' => 0,
+ 'size' => 'tiny',
+ ],
+ 'type' => [
+ 'type' => 'varchar_ascii',
+ 'length' => 64,
+ 'not null' => TRUE,
+ 'default' => '',
+ 'description' => 'Type of the record.',
+ ],
+ 'created' => [
+ 'type' => 'int',
+ 'not null' => TRUE,
+ 'default' => 0,
+ 'description' => 'Timestamp when the record was created.',
+ ],
+ 'data' => [
+ 'type' => 'blob',
+ 'not null' => TRUE,
+ 'size' => 'big',
+ 'description' => 'The arbitrary data for the item.',
+ ],
+ ],
+ 'primary key' => ['id'],
+ 'indexes' => [
+ 'type' => ['type'],
+ 'uid' => ['uid'],
+ 'status' => ['status'],
+ ],
+ ];
+
+ return $schema;
+}
+
+/**
+ * Implements hook_requirements().
+ */
+function {{ machine_name }}_requirements($phase) {
+ $requirements = [];
+
+ if ($phase == 'runtime') {
+ $value = mt_rand(0, 100);
+ $requirements['{{ machine_name }}_status'] = [
+ 'title' => t('{{ name }} status'),
+ 'value' => t('{{ name }} value: @value', ['@value' => $value]),
+ 'severity' => $value > 50 ? REQUIREMENT_INFO : REQUIREMENT_WARNING,
+ ];
+ }
+
+ return $requirements;
+}