Co je ORM a proč ho používat?

Object-Relational Mapping (ORM) je technika, která usnadňuje práci s databázemi. Pomocí ORM můžete manipulovat s databázovými daty jako s objekty, což zjednodušuje kód a činí jej přehlednějším.

Doctrine ORM

Doctrine je populární ORM nástroj pro PHP. Poskytuje robustní nástroje pro mapování entit na databázové tabulky a podporuje pokročilé funkce, jako jsou vztahy mezi tabulkami nebo lazy loading.

Ukázka práce s Doctrine:

Definice entity:

/**
 * @Entity
 * @Table(name="products")
 */
class Product
{
    /** @Id @Column(type="integer") @GeneratedValue */
    private $id;

    /** @Column(type="string") */
    private $name;

    /** @Column(type="decimal", scale=2) */
    private $price;

    // Gettery a settery
}

Dotaz na data:

$product = $entityManager->find(Product::class, 1);
echo $product->getName();

Nextras ORM

Nextras ORM je česká alternativa k Doctrine, která se zaměřuje na jednoduchost a rychlost. Je vhodná pro projekty v Nette frameworku.

Ukázka práce s Nextras ORM:

Definice entity:

/**
 * @property int    $id    {primary}
 * @property string $name
 * @property float  $price
 */
class Product extends \Nextras\Orm\Entity\Entity
{
}

Definice repository:

class ProductRepository extends \Nextras\Orm\Repository\Repository
{
    public static function getEntityClassNames(): array
    {
        return [Product::class];
    }
}

Dotaz na data:

$product = $productRepository->getById(1);
echo $product->name;

Výhody ORM

  1. Zjednodušení: Práce s databází pomocí objektů místo SQL dotazů.
  2. Bezpečnost: Ochrana proti SQL injection.
  3. Údržba: Kód je přehlednější a snadno rozšiřitelný.

ORM nástroje, jako Doctrine nebo Nextras ORM, jsou neocenitelnými pomocníky při práci s databázemi v moderních aplikacích.