Co je Nextras ORM a jak funguje?

Obsah
Nextras ORM je knihovna pro práci s databází v PHP, která umožňuje používat databázi prostřednictvím objektů namísto přímého psaní SQL dotazů. ORM automaticky mapuje databázové tabulky na PHP třídy a řádky na objekty.
Je to alternativa k ručnímu psaní SQL, vhodná zejména při použití frameworku Nette, se kterým je úzce integrován.
Hlavní výhody Nextras ORM
- Jednoduché a srozumitelné API pro práci s databází
- Plná podpora typové bezpečnosti díky PHP anotacím a generování getter/setter metod
- Lazy loading – data se načítají pouze tehdy, když je opravdu potřebujete
- Podpora vztahů mezi entitami: 1:1, 1:N, N:M
- Kompatibilita s Doctrine Annotations, Symfony Console a Composerem
Základní principy fungování
Nextras ORM pracuje se třemi hlavními typy objektů:
- Entity – třída, která reprezentuje jeden záznam v databázi
- Repository – objekt, přes který získáváme nebo ukládáme entity
- Mapper – zajišťuje mapování entity na konkrétní databázovou tabulku
Ukázka: jednoduchá entita
namespace App\Model\Entity;
use Nextras\Orm\Entity\Entity;
use Nextras\Orm\Relationships\OneHasMany;
/**
* @property int $id (primary)
* @property string $jmeno
* @property OneHasMany|Komentar[] $komentare {1:m Komentar::$clanek}
*/
class Clanek extends Entity
{
}
Ukázka repository
namespace App\Model\Repository;
use Nextras\Orm\Repository\Repository;
class ClanekRepository extends Repository
{
public static function getEntityClassNames(): array
{
return [\App\Model\Entity\Clanek::class];
}
}
Ukázka mapperu
namespace App\Model\Mapper;
use Nextras\Orm\Mapper\Mapper;
class ClanekMapper extends Mapper
{
}
Práce s entitami v praxi
V presenteru nebo službě pak můžete snadno načítat nebo ukládat data:
// Vyhledání článku podle ID
$clanek = $clanekRepository->getById(1);
// Vytvoření nové entity
$novyClanek = new Clanek();
$novyClanek->jmeno = 'Nový článek';
$clanekRepository->persistAndFlush($novyClanek);
// Výpis komentářů článku
foreach ($clanek->komentare as $komentar) {
echo $komentar->obsah;
}
Konfigurace
V Nette projektu stačí zaregistrovat ORM v neon
konfiguračním souboru:
extensions:
orm: Nextras\Orm\Bridges\NetteDI\OrmExtension
orm:
model: App\Model\Orm\Model
cache: %tempDir%/cache/orm
Závěr
Nextras ORM je ideální nástroj pro PHP vývojáře, kteří chtějí udržet databázovou vrstvu čistou, přehlednou a objektově orientovanou. Díky jednoduchému a dobře dokumentovanému API je vhodný i pro menší projekty, ale díky své flexibilitě ho lze použít i v robustních aplikacích.
Poslední aktualizace článku proběhla 10.4.2025.
OBJEDNAT SEO OPTIMALIZACI