Varför en egen entitet?

I ett projekt jag håller på med har jag behov av att lagra rader i en databas som håller information som framför allt bara ska användas i modul-kod. Jag tyckte detta var ett ypperligt tillfälle att lära mig om entiteter i Drupal 7.
Skrivet av Joel Söderberg - tors, 2014-11-20 17:08

Först och främst kan det vara bra att läsa den här introduktionen om entiteter i Drupal.

Fördelen med att använda entiteter för för mitt lilla projekt är att man slipper skriva egen kod för att ladda och spara objekt i databasen. Detta minskar koden du behöver skriva själv och minskar risken för buggar. Om du använder Entity API-modulen får du dessutom massa häftiga verktyg helt gratis som fungerar med din egenskrivna entitet.

Det är förvånansvärt enkelt att komma igång. Skapa din modul, definiera ditt schema i install-filen, skriv en hook_entity_info() i din modul-fil:

/**
 * Implements hook_entity_info().
 */
function demo_entity_info() {

  $info = array();

  $info['project'] = array(
    'label' => t('Project'),
    'base table' => 'demo_projects',
    'entity keys' => array(
      'id' => 'id',
      'label' => 'name',
    ),
    'module' => 'demo',
  );

  return $info;
}

Sedan har du en entitet som du kan ladda med entity_load() eller använda med EntityFieldQuery. Jag använde den här enkla guiden för att komma igång.

Det är ungefär så här långt jag har nått hittills. Jag hoppas kunna skriva mer om mina erfarenheter när projektet är avslutat.