entity_example.install

Install for a basic entity - need to create the base table for our entity. This table can have as many columns as you need to keep track of entity-specific data that will not be added via attached fields. The minimum information for the entity to work is an id and an entity name.

File

entity_example/entity_example.install

View source
<?php


/**
 * @file
 * Install for a basic entity - need to create the base table for our entity.
 * This table can have as many columns as you need to keep track of
 * entity-specific data that will not be added via attached fields.
 * The minimum information for the entity to work is an id and an entity name.
 */

/**
 * Implements hook_schema().
 *
 * @ingroup entity_example
 */
function entity_example_schema() {
    $schema = array();
    // The name of the table can be any name we choose. However, namespacing the
    // table with the module name is best practice.
    $schema['entity_example_basic'] = array(
        'description' => 'The base table for our basic entity.',
        'fields' => array(
            'basic_id' => array(
                'description' => 'Primary key of the basic entity.',
                'type' => 'serial',
                'unsigned' => TRUE,
                'not null' => TRUE,
            ),
            // If we allow multiple bundles, then the schema must handle that;
            // We'll put it in the 'bundle_type' field to avoid confusion with the
            // entity type.
'bundle_type' => array(
                'description' => 'The bundle type',
                'type' => 'text',
                'size' => 'medium',
                'not null' => TRUE,
            ),
            // Additional properties are just things that are common to all
            // entities and don't require field storage.
'item_description' => array(
                'description' => 'A description of the item',
                'type' => 'varchar',
                'length' => 255,
                'not null' => TRUE,
                'default' => '',
            ),
            'created' => array(
                'description' => 'The Unix timestamp of the entity creation time.',
                'type' => 'int',
                'not null' => TRUE,
                'default' => 0,
            ),
        ),
        'primary key' => array(
            'basic_id',
        ),
    );
    return $schema;
}

/**
 * Implements hook_uninstall().
 *
 * At uninstall time we'll notify field.module that the entity was deleted
 * so that attached fields can be cleaned up.
 *
 * @ingroup entity_example
 */
function entity_example_uninstall() {
    field_attach_delete_bundle('entity_example_basic', 'first_example_bundle');
}

Functions

Title Deprecated Summary
entity_example_schema Implements hook_schema().
entity_example_uninstall Implements hook_uninstall().