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
- Zjednodušení: Práce s databází pomocí objektů místo SQL dotazů.
- Bezpečnost: Ochrana proti SQL injection.
- Ú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.