# Migrace, entity

  • Migrace

    • spuštění migrací - doctrine:migration:migration
    • když symfony hlásí chybu v databázi (typicky "missing column"), zkusit spustit migrace
    • vytvoření nové migrace oproti aktuální databázi - doctrine:migration:diff (hned přidat migraci do gitu - git add - aby se nezapomnělo ji commitnout)
  • Entity

    • nepoužívat trait pro přidání primárního klíče (konkrétně nepoužívat traitu PrimaryKey)
    • pořadí atributů
      1. primární klíč
      2. skalární atributy
      3. vazby na ostatní entity
    • setter na kolekci - "ping pong" varianta setterů - NEPOUŽÍVAT ping pong settery, při větší db příkaz contains zbytečně vyžere paměť.
      • nevytvářet settery pro @OneToMany atributy typu setSomethings() - nemá smysl přepsat celý obsah kolekce. Místo toho lze použít metody addSomething a removeSomething na kolekci
    • getter na json: (u velkého jsonu může být clone náročný)
    public function getData(bool $clone) : \stdClass
    {
        if ($clone) {
            return clone $this->data;
        }

        return $this->data;
    }