hook_schema

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

developer/hooks/install.php, строка 140

Версии
6
hook_schema()

Устанавливает базу данных согласно определенной схемы.

В Drupal объявление схемы для хука hook_schema() выглядит как структурированный массив, определяющий одну или более таблиц, их связные ключи и индексы. Схема обрабатывается хуком hook_schema() и должна храниться в файле с расширением .install вашего модуля.

Используя hook_schema() и указывая таблицы, которые ваш модуль декларирует, вы можете легко создавать и удалять эти таблицы во всех поддерживаемых движках баз данных. Вам не нужно заботиться о разнице в SQL-диалектах для создания и изменения таблиц в поддерживаемых движках баз данных.

См. в статье Schema API Handbook подробности описания структуры схемы.

Возвращаемое значение

Массив, определяющий структуру схемы. Ключом каждого элемента массива является название таблицы и значением определение структуры таблицы.

Связанные темы

▾ 1 функция вызывает hook_schema()

drupal_get_schema in includes/common.inc
Возвращает схему определенной таблицы или всей базы данных сайта.

Код

<?php
function hook_schema() {
  $schema['node'] = array(
    // example (partial) specification for table "node"
    'description' => t('The base table for nodes.'),
    'fields' => array(
      'nid' => array(
        'description' => t('The primary identifier for a node.'),
        'type' => 'serial',
        'unsigned' => TRUE,
        'not null' => TRUE),
      'vid' => array(
        'description' => t('The current {node_revisions}.vid version identifier.'),
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0),
      'type' => array(
        'description' => t('The {node_type} of this node.'),
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
        'default' => ''),
      'title' => array(
        'description' => t('The title of this node, always treated a non-markup plain text.'),
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => ''),
      ),
    'indexes' => array(
      'node_changed'        => array('changed'),
      'node_created'        => array('created'),
      ),
    'unique keys' => array(
      'nid_vid' => array('nid', 'vid'),
      'vid'     => array('vid')
      ),
    'primary key' => array('nid'),
  );
  return $schema;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему